はじめまして。風の鳩サブレーと申します。
POWERSHELLはごく最近知ったのですがすごくいいですね。
ただ他の投稿にもあるようにドキュメント類が少なく苦戦しています。
フォーラムが出来たと聞いたので早速質問させていただきます。
外部プログラムを実行して結果を変数に取り込む場合
$result = &"外部プログラム"
で取り込むことが出来ますが、実行したプログラムが標準エラー出力(stderr)に吐いた場合には
コンソールに表示されてしまい変数に取り込ことが出来ません。
trapで取り込めないかと考えましたがコマンドの実行自体は成功していて
PowerShell自体がエラーを起こしているわけではないためうまくいかないようです。
何か方法をご存知ありませんか?
実行例 )
VMWAREのPerl APIを使用してゲストOS一覧を取得する
(まったく関連性の無い例ですみません。)
<実行が成功した場合は変数に結果(多分標準出力)が格納される>
PS > $kekka=&".\vmware-cmd.bat" -H xxx.xxx.xxx.xxx -U root -P xxxx -l
PS > echo $kekka
/root/vmware/luna/luna.vmx
/root/vmware/mars/mars.vmx
PS >
<パスワードを間違えた場合コンソールに表示される>
PS> $kekka=&".\vmware-cmd.bat" -H xxx.xxx.xxx.xxx -U root -P xxxxx -l
C:\Program Files\VMware\VMware VmPerl Scripting API\vmware-cmd: Could not connect to vmware-authd (VMControl error -4: Permission denied: Login (username/password) incorrect)
PS > echo $kekka
PS >