2012-07-16 10 views

Odpowiedz

12

Spróbuj czegoś takiego:

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

EDIT:

Więc można przekierować dane wyjściowe do pliku, a następnie odczytać file:

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

OK fajnie, działa, ale potrzebuję wyniku w var, do użycia w razie Jeśli mogę to zrobić? Dzięki za pomoc! – user1528355

+0

@ user1528355 patrz edytowany wpis –

+1

Dzięki bro! Działa! Jedna rzecz, ";" nie potrzebujesz tego. Przyjemna pomoc i za szybko! – user1528355

17

Jest sposób na zrobienie tego bez konieczności zapisywania danych wyjściowych do pliku.

Załóżmy na przykład, że chcesz przechwycić tekst wykazu katalogów. (. Nie byłoby wiele lepszych sposobów, aby dostać go od tego, ale jestem po prostu za pomocą prostego przykładu)

Dzięki funkcji poniżej w Twoim języku VBScript, można wpisać:

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

A kiedy powyższa linia zostanie wykonana, zmienna "thisDir" będzie zawierać dane wyjściowe z polecenia DIR.

Zauważ, że niektóre polecenia, które chcesz wyprowadzić, będą wymagały przekazania ich przez powłokę poleceń (część "cmd/c" powyższego), podczas gdy inne mogą działać poprawnie, jeśli uruchomisz je bezpośrednio bez powłoki. Wypróbuj bez powłoki poleceń. Jeśli się nie powiedzie, spróbuj użyć powłoki poleceń.

' 
' 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 
Powiązane problemy