2016-03-31 2 views
1

Я использую VB Script для запуска командного файла, который будет запускать сборку.проверить, выполнено ли выполнение сборки с использованием сценария vb

После сборки я хочу проверить, была ли сборка успешной или неудачной в самом скрипте, даже если сборка выполнена успешно или неудачна.

Как я могу это достичь?

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

Я просто используя приведенный выше код, который будет работать пакетный файл, который будет работать сборки, следующий я хочу, чтобы проверить, была ли сборка успешной или неудачной. Так как я могу приостановить мое VB Script в течение некоторого времени, и ждать сборки, чтобы получить завершена, и знать, Что результат

+0

Изменить свой вопрос и разместить свой код ! – Hackoo

+0

@Hackoo Dim objShell Set objShell = WScript.CreateObject ("WScript.Shell") objShell.Run "CMD/к CD C: \ filename.bat" Я просто используя приведенный выше код, который будет запускать командный файл, который будет запускать сборку, а затем я хочу проверить, была ли сборка успешной или неудачной. Итак, как я могу приостановить свой скрипт vb в течение некоторого времени и дождаться завершения сборки и узнать, что результат –

+0

Какой вид сборки? опубликуйте его источник не в комментариях, а в своем вопросе – Hackoo

ответ

0

Дайте попробовать для этого примера кода:

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

Хорошо, могу ли я прочитать содержимое командной строки без использования '>' или '>>' с помощью vbscript. Потому что я хочу прочитать контент через некоторое время, когда пакетный файл будет выполнен полностью @Hackoo –

+0

@ AkashS. Вы имеете в виду, что хотите поймать источник кода любого командного файла? как этот, который может поймать исходный код любого vbscript: http://stackoverflow.com/questions/36305046/use-vbscript-to-merge-all-open-instances-of-notepad-exe-and-save-to -txt-file? answertab = active # tab-top – Hackoo

+0

Я не хочу, чтобы исходный код запущенного командного файла, я хочу поймать вывод командного файла, выполненного из команды promt. –

Смежные вопросы