オペレーティングシステムのバージョンを確認するには、VBSでコマンド "ver"を実行する必要がありますが、その方法がわかりません。
私はこれを試しましたが、うまくいきません:
Function ExecuteWithTerminalOutput(cmd)
Set Shell = WScript.CreateObject("WScript.Shell")
Set Exec = Shell.Exec("ver")
End Function
このようなものを試してください:
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
ファイルに出力を書き込まずにこれを行う方法があります。
たとえば、ディレクトリリストのテキストをキャプチャしたいとします。 (これよりも多くの優れた方法がありますが、私は単純な例を使用しています。)
VBScriptで以下の関数を使用すると、次のように入力できます。
thisDir = getCommandOutput("cmd /c dir c:")
上記の行が実行されると、変数「thisDir」にはDIRコマンドからの出力が含まれます。
出力が必要なコマンドの中には、コマンドシェル(上記の "cmd/c"の部分)を介して渡す必要があるものもあれば、シェルなしで直接実行すると正常に動作するものもあります。コマンドShellなしで試してください。失敗した場合は、Shellコマンドで試してください。
'
' 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
Dim Shell
Set Shell= WScript.CreateObject ("WScript.Shell")
Shell.Exec"cmd /c ver"
Set Shell= Nothing