2012-07-16 7 views

cevap

12

böyle bir şey deneyin:

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

DÜZENLEME:

Peki o zaman okumak daha sonra bir dosyaya çıktı yönlendirmek ve edebilirsiniz dosya:

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

tamam güzel, işe yarıyor, ancak sonuçta bir varlığa ihtiyacım var. Eğer bunu kullanabilir miyim? Yardımlarınız için teşekkürler! – user1528355

+0

@ user1528355 yazılanları görüntüle –

+1

Teşekkürler kardeşim! Çalışıyor! Bir şey, ";" gerek yok. Güzel yardım ve çok hızlı! – user1528355

17

Bir dosyaya çıktı yazmak zorunda kalmadan bunu yapmanın bir yolu var. Örneğin, bir dizin listesinin metnini yakalamak istediğinizi varsayalım. (. Orada bundan daha ölmek daha birçok yolu olurdu, ama sadece basit bir örnek kullanıyorum) sizin VBScript'teki aşağıda fonksiyonu ile

şunu girebilirsiniz:

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

Ve ne zaman Yukarıdaki satır yürütülür, "thisDir" değişkeni, DIR komutundan gelen çıktıyı içerecektir.

Çıktısını almak istediğiniz komutların bazılarını komut kabuğundan (yukarıdaki "cmd/c" bölümü) geçirmeniz gerektiğini unutmayın, diğerleri ise doğrudan kabuk olmadan çalıştırırsanız iyi çalışır. Komut kabuğu olmadan deneyin. Başarısız olursa, komut kabuğu ile deneyin.

' 
' 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 
İlgili konular