2017-01-24 2 views
0

Во-первых, я создал VBScript для запуска командного файла без видимой командной строки.Я хочу запустить сторонний .exe-файл из .bat-файла без видимой командной строки

Ниже приводится код:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run Chr(34) & ("D:\Intouch_Printer_SW\spool12\spltotext.bat") & Chr(34), 0 
Set WshShell = Nothing 

Ниже мой пакетный файл код для запуска файла стороннего .exe.

for %%f in (C:\WINDOWS\system32\spool\PRINTERS\*.SPL) do (
    echo %%~nf 
    start "" D:\Intouch_Printer_SW\spool12\spool.exe "C:\WINDOWS\system32\spool\PRINTERS\%%~nf.SPL" "Intouch Printer" 
) 

Всякий раз, когда я запускаю мой .vbs код консольное окно выскакивает, я хочу сделать все это без видимой командной строки.

Я думаю, что я получаю черное окно из-за этот фрагмент:

start "" D:\Intouch_Printer_SW\spool12\spool.exe "C:\WINDOWS\system32\spool\PRINTERS\%%~nf.SPL" "Intouch Printer" 
+0

Вы попробовали позвонить, а не начать? Помимо этого вы можете использовать 'start/Min', чтобы окно командной строки было сведено к минимуму. – geisterfurz007

+0

Спасибо, человек! Большое спасибо. Это сработало. –

+2

Какой из них? Я хотел бы добавить ответ :) – geisterfurz007

ответ

1

start открывает команду в новом окне. Это не требуется для запуска консольных приложений, так что вы можете просто удалить его:

for %%f in (C:\WINDOWS\system32\spool\PRINTERS\*.SPL) do (
    echo %%~nf 
    D:\Intouch_Printer_SW\spool12\spool.exe "C:\WINDOWS\system32\spool\PRINTERS\%%~nf.SPL" "Intouch Printer" 
) 

Кроме того, я рекомендовал бы запустить пакетный сценарий синхронно с VBScript (3-й аргумент Run методом, установленным в True), чтобы избегайте нежелательных побочных эффектов, если кто-либо изменит VBScript.

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run """D:\Intouch_Printer_SW\spool12\spltotext.bat""", 0, True 

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

  • Нет связанных вопросов^_^