2016-03-31 19 views
1

VB Komut Dosyasını çalıştırmak için bir komut dosyasını çalıştıracağım.Yapılandırma çalıştırmanın başarılı olup olmadığını denetle

Yapıdan sonra, yapının başarılı veya başarısız olmasına rağmen, yapının başarılı olup olmadığını veya başarısız olduğunu kontrol etmek istiyorum.

Bunu nasıl sağlayabilirim? Ben sadece bir yapı çalışacak bir toplu iş dosyası çalışır Yukarıdaki kodu, kullanıyorum

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run "cmd /k cd c:\filename.bat" 

sonraki i inşa başarılı veya başarısız olup olmadığını kontrol etmek istiyorum. Peki ben bir süre benim vb komut dosyası durdurabilir ve sonuç

+0

düzenleyin soru ve kodunuzu sonrası ! – Hackoo

+0

@Hackoo Dim objShell Seti objShell = WScript.CreateObject ("WScript.Shell") objShell.Run "cmd/k cd c: \ filename.bat" Ben sadece yukarıdaki kodu, kullanıyorum hangi bir yapıyı çalıştıracak bir toplu iş dosyasını çalıştıracak, sonra da yapının başarılı veya başarısız olup olmadığını kontrol etmek istiyorum. Peki, bir zaman için komut dosyasını nasıl durdurabilirim ve yapının tamamlanmasını ve sonucun ne olduğunu bilmesini bekleyin –

+0

Ne tür bir yapı? kaynağını yorumlarda değil ama sorunuzda – Hackoo

cevap

0

bir bu örnek kod için deneyin neyin inşa tamamladı almak için beklemek ve bilebiliriz:

Option Explicit 
Dim BatchFile,strText 
strText = "@echo off & echo Hello World. & TimeOut /T 5 & exit" 
BatchFile = "filename.bat" 
Call Create_BatchFile(strText,BatchFile) 
wscript.echo "We execute the batch file in hidden mode !" & vbcr & "Just clic Ok button to run it !" 
Call Run(BatchFile,0,True) 
wscript.echo "We execute the batch file in normal mode !" & vbcr & "Just clic Ok button to run it !" 
Call Run(BatchFile,1,True) 
'********************************************************************************************** 
Function Run(StrCmd,Console,bWaitOnReturn) 
    Dim ws,MyCmd,Result 
    Set ws = CreateObject("wscript.Shell") 
'A value of 0 to hide the MS-DOS console 
    If Console = 0 Then 
     MyCmd = "CMD /C " & StrCmd & "" 
     Result = ws.run(MyCmd,Console,bWaitOnReturn) 
     If Result = 0 Then 
      MsgBox "Success" 
     Else 
      MsgBox "An unknown error has occurred!",16,"An unknown error has occurred!" 
     End If 
    End If 
'A value of 1 to show the MS-DOS console 
    If Console = 1 Then 
     MyCmd = "CMD /K " & StrCmd & "" 
     Result = ws.run(MyCmd,Console,bWaitOnReturn) 
     If Result = 0 Then 
      MsgBox "Success" 
     Else 
      MsgBox "An unknown error has occurred!",16,"An unknown error has occurred!" 
     End If 
    End If 
    Run = Result 
End Function 
'********************************************************************************************** 
Sub Create_BatchFile(strText,BatchFile) 
Const ForWriting = 2 
Dim fso,ts 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set ts = fso.OpenTextFile(BatchFile,ForWriting,True) 
ts.WriteLine strText 
ts.Close 
End Sub 
'********************************************************************************************** 
+0

Tamam, Komut isteminin içeriğini '>' veya '>>' kullanmadan vbscript kullanarak okuyabilir miyim? Çünkü bir süre sonra içeriğini okumak istediğim toplu iş dosyasının tamamen çalıştırılacağı zaman @ Hackoo –

+0

@ AkashS.Did herhangi bir toplu iş dosyasının kod kaynağını yakalamak istediğiniz anlamına mı geliyor? herhangi bir vbscript'in kaynak kodunu yakalayabilen bu gibi: http://stackoverflow.com/questions/36305046/use-vbscript-to-merge-all-open-instances-of-notepad-exe-and-save-to -txt-dosya? answertab = aktif # tab-top – Hackoo

+0

Ben toplu iş dosyasının kaynak kodu istemiyorum, ben komut balyozdan yürütülen toplu iş dosyasının çıkışını yakalamak istiyorum. –