0

VBS を使用していくつかの CMD コマンドを実行している場合、この例の ping では、DOS ではなく VBS を使用してコマンドをテキスト ファイルに書き込むにはどうすればよいでしょうか?

Set objCmdTest = WScript.CreateObject ("WScript.Shell")
Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\vbs\test.txt",8,true)

Output.WriteLine (objCmdTest.run ("ping failboat"))
Output.WriteLine (objCmdTest.run ("ping 8.8.8.8"))

これが私が取り組んでいるものですが、何が起こるかは次のとおりです。スクリプトが実行され、ファイルが作成され、ping を実行するために 2 つのコマンド プロンプトが開き、最後にファイル内のテキストが次のように表示されます。

0
0

ping出力が欲しい場合。

参考までに: 執筆に DOS を使用する必要があるという提案はしないでください。複数の理由から、VBS が必要なことをどのように実行できるかを確認したいと思います。ありがとう!

4

2 に答える 2

3

この命令は、メソッドの戻り値を出力ファイルにOutput.WriteLine (objCmdTest.run ("ping failboat"))書き込みます。コマンド出力を出力ファイルに追加する場合は、コマンドで出力をリダイレクトする必要があります。Run

objCmdTest.run "%COMSPEC% /c ping failboat >>C:\vbs\test.txt", 0, True

またはExec代わりに使用Run

Set ping = objCmdTest.Exec("ping failboat")
Do While ping.Status = 0
  WScript.Sleep 100
Loop
Output.WriteLine ping.StdOut.ReadAll
于 2013-04-19T15:01:22.997 に答える
1

WScript.Shell の run メソッドは、プロセスの終了コードを返します。アプリケーションの出力にアクセスするには、代わりにexecメソッドを使用し、返されるオブジェクトを使用して、そのStdOutプロパティを通じてプロセスの標準出力にアクセスする必要があります。

于 2013-04-19T14:59:51.880 に答える