11

オペレーティング システムのバージョンを確認するには、vbs でコマンド「ver」を実行する必要がありますが、その方法がわかりません。

私はこれを試しましたが、うまくいきません:

Function ExecuteWithTerminalOutput(cmd)
Set shell = WScript.CreateObject("WScript.Shell")
Set Exec =  shell.Exec("ver")
End Function
4

3 に答える 3

23

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

たとえば、ディレクトリリストのテキストをキャプチャしたいとします。(これよりも良い方法はたくさんありますが、私は簡単な例を使用しています。)

以下の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
于 2012-08-09T16:14:04.420 に答える
13

次のようなものを試してください。

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

編集:

次に、出力をファイルにリダイレクトしてから、ファイルを読み取ることができます。

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
于 2012-07-16T09:02:59.140 に答える