作成 2010.01.05
更新 2014.03.20
PowerShell で外部コマンドの結果を取り込む
このサンプルでは、dir の実行結果を $ret へ入力します。
$ret = &"dir"
Write-Output $ret
引数がある場合は、以降につなげます。なお引数を " で囲むと期待通りに動作しないことがあります。dir -force がこの例に該当します。
# 正常
$ret1 = &"dir" -force
# エラー
$ret1 = &"dir" "-force"
# 正常
$ret2 = &"netstat" -n
# 正常
$ret2 = &"netstat" "-n"
Write-Output $ret1
Write-Output $ret2
次のようにも記述できます。
$ret = ` dir
$ret
ただし、バージョンによって "`" の後にスペースが必須(Windows 8.1)の場合と、スペースなしが必須(Windows 7)の場合があります。
Windows 7 の場合は、以下が正しく動作しますが、
$ret = `dir -force
$ret
以下の記述は Windows 7 では正しく動作しません。
$ret = `netstat -n
$ret
よって、多少面倒でも前者を使うのがお勧めです。
タグ: PowerShell

©2004-2017 UPKEN IPv4