2016-10-13 2 views
2

У меня есть VBScript, который запускает тесты в HP ALM для запуска с UFT - Этот vbs работает только путем запуска его в cmd с cscript.VBS для запуска другого vbs через cmd в cscript

Я хочу знать, как я могу воздержаться от первого перехода к cmd, чтобы вызвать его, но просто создайте еще один vbs, который запустит файл, который будет запущен в cmd с cscript. Или, может быть, у вас есть лучшее решение.

Этот код не работает.

Set oShell = WScript.CreateObject ("WScript.Shell") 

oShell.run "cmd.exe" "" c:\Windows\SysWOW64\cscript.exe C:\Temp\Unattended.vbs"" 

Set oShell = Nothing 

ответ

0

Вот несколько примеров того, как запустить VBS. Если ваша система запускает cscript по умолчанию, последний вариант должен работать.

Set objShell = CreateObject("WScript.Shell") 

'run with wscript 
objShell.Run("""C:\Windows\System32\wscript.exe"" ""C:\Test\MyScript.vbs""") 

wscript.sleep 5000 'waits 5 seconds before running the next script. This is used for display purposes, not because you have to 

'run with cscript 
objShell.Run("""C:\Windows\System32\cscript.exe"" ""C:\Test\My Script.vbs""") 

wscript.sleep 5000 'waits 5 seconds before running the next script. This is used for display purposes, not because you have to 

'run with the default program for vbs files (usually cscript) 
objShell.Run("""C:\Test\My Script.vbs""") 
+2

Удалите круглые скобки. Они здесь недействительны, но [не делают то, что ожидали большинство людей] (http://blogs.msdn.com/b/ericlippert/archive/2003/09/15/52996.aspx). Кроме того, интерпретатор по умолчанию - 'wscript.exe', если вы не измените его на' cscript.exe'. –

+1

@AnsgarWiechers действительно ?, это не Sub ... почему бы просто не сделать result = objShell.Run ("" "C: \ Windows \ System32 \ cscript.exe" "" "C: \ Test \ My Script.vbs "" ")' и сделайте с ним * (сначала запомните «Dim result») *. – Lankymart

+0

@ Lankymart Это был бы другой вариант (возможно лучший). Если вы действительно проверяете возвращаемый код выхода, то есть. –

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