2012-07-16 8 views

答えて

12

このような何か試してみてください:

Dim objShell 
Set objShell = WScript.CreateObject ("WScript.shell") 
objShell.run "cmd /c ver" 
Set objShell = Nothing 

EDIT:

さて、あなたは出力をファイルにリダイレクトして、読むことができますがファイル:

return = WshShell.Run("cmd /c ver > c:\temp\output.txt", 0, true) 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set file = fso.OpenTextFile("c:\temp\output.txt", 1) 
text = file.ReadAll 
file.Close 
+0

いいです、それは動作しますが、私はvarで結果を必要とします、Ifで使用するには、私はこれを行うことができますか? ありがとうございました! – user1528355

+0

@ user1528355編集済みの記事を表示 –

+1

ありがとうございました!それは動作します! 1つは、 ";"それは必要ありません。 素敵なヘルプと速すぎる! – user1528355

17

出力をファイルに書き込まなくてもこれを行う方法があります。

たとえば、ディレクトリ一覧のテキストを取得するとします。 (。そここれよりもそれを得るためのより良い方法はたくさんあることでしょうが、私はちょうど簡単な例を使用しています)

あなたのVBScriptで以下の機能により、次のように入力します。

thisDir = getCommandOutput("cmd /c dir c:") 

そして、上記の行が実行されると、変数 "thisDir"にDIRコマンドの出力が含まれます。

出力したいコマンドの中には、コマンドシェル(上記の "cmd/c")でコマンドを渡す必要があるものもあれば、シェルなしで直接実行するものもあります。コマンドシェルなしで試してみてください。失敗した場合は、コマンドシェルで試してみてください。

' 
' Capture the results of a command line execution and 
' return them to the caller. 
' 
Function getCommandOutput(theCommand) 

    Dim objShell, objCmdExec 
    Set objShell = CreateObject("WScript.Shell") 
    Set objCmdExec = objshell.exec(thecommand) 
    getCommandOutput = objCmdExec.StdOut.ReadAll 

end Function 
関連する問題