Memorandums?

This blog is written about technical-discovery and daily-event.

Windows Power Shellで遊ぶ

power shellで,いろいろと遊んでみます.

echo tasklist > task.txt
$s = (cat task.txt)
Invoke-Expression $s

これでtasklistが表示されます
最後のInvoke-Expressionコマンドは$s内の文字列をコマンドとして実行してくれます.
これがないとtasklistの中身ではなく,"tasklist"という文字列が表示されてしまいます.

echo pwd >> task.txt
echo ls >> task.txt
echo ipconfig >> task.txt

$s = (Get-Content task.txt) -as [string]
$s = $s.replace(" ", "`n") | grep [config]$
Invoke-Expression $s

これで複数行あるテキストファイルからipconfigだけを抜き出し実行できます.
Get-contentコマンドはtask.txtのテキスト形式などを取り除いて文字列として扱います.
as [string] オプションで,複数行を半角スペース区切りで取り出します.
replaceメソッドで第一引数を第二引数で置換します.
grepコマンドで末尾にconfigがある行を取りだします.
このような流れです.