WSHShell の Exec メソッドを利用すると実行したプログラムの標準出力を編集に取得することができる。
ipconfig の実行結果を StdOut.ReadAll で変数に読みとっています。
WshShellオブジェクトのExec メソッドの引数は .exe を記載しなくても実行します。(例:"netstat -n")
tree コマンドは実行ファイルではなく、コマンドシェルの1コマンドなので、cmd.exe の引数に入れて実行する必要があります。
このやり方だと、cmd.exe を引数なしで呼び出した場合うまくいかないです。WshShell.Exec("cmd.exe")と書いて実行すると、真っ黒な画面が出て[×]の終了ボタンを押さないと閉じることもできなくなります。
これは次の様な理由です。
標準入力は objExec.StdIn が担うので、キー入力しても cmd.exe へは文字列は送られません。
標準出力は objExec.StdOut が担うので、出力があるコマンドを実行しても画面に文字列は表示されません。
次を見れば理由が分かると思います。
dir コマンドを StdIn に送って実行し、そしてその次に exit コマンドを StdIn に送って cmd.exe を終了しています。
その後 StdOut を取得して画面表示させています。
Script のページに戻る
0 件のコメント:
コメントを投稿