Трябва да изпълня команден ред в скрипт на Visual Basic

Трябва да изпълня командата "ver" в моя vbs, за да видя версията на моята операционна система, и не знам как да го направя.

Опитах това, но не работи:

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

person user1528355    schedule 16.07.2012    source източник


Отговори (2)


Опитайте нещо подобно:

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
person David Kroukamp    schedule 16.07.2012
comment
добре, хубаво, работи, но имам нужда от резултата във var, за да го използвам в If, мога ли да направя това? Благодаря за помощта! - person user1528355; 16.07.2012
comment
Благодаря братле! Да работи! Едно нещо, ; нямам нужда от него. Добра помощ и твърде бързо! - person user1528355; 16.07.2012

Има начин да направите това, без да се налага да записвате изход във файл.

Да предположим например, че искате да заснемете текста на списък с директория. (Ще има много по-добри начини да го получите от този, но аз просто използвам прост пример.)

С функцията по-долу във вашия 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
person Michael Salsbury    schedule 09.08.2012