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がある行を取りだします.
このような流れです.