これは、コマンドラインプログラムが標準出力に送信するものを捕捉する方法を示すVBScriptのコード例です。 コマンドxcopy /?
を実行し、メッセージボックスに出力を表示します。メッセージボックスが表示される前に、スプリット秒間、コンソールウィンドウがポップアップして表示されます。コンソールウィンドウを表示せずにstdoutをキャプチャするVBscriptコード
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("xcopy /?")
Do
line = objExec.StdOut.ReadLine()
s = s & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
WScript.Echo s
これは、コンソールウィンドウを表示せずにスクリプトを実行する方法を示す他のVBScriptコード例です。
objShell.Run "c:\temp\mybatch.bat C:\WINDOWS\system32\cmd.exe", 0
またはあなたはそれがフォーム<script><space><executor>
を持って見ることができるように
objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0
。 最後の例は、私が知らないことは、コンソールウィンドウを表示せず、(バッチファイルから必要に応じて)、コマンドラインプログラムを実行し、標準出力をキャッチする方法であるobjShell.Run
代わりのobjShell.Exec
使用しています。何か案は?
巧妙な解決策です。一時ファイルについての同情。しかしそれはポイントがあなたのものであるように要件を満たしています。ありがとう、マルセル。 – mgr326639