2017-01-22 3 views
1

Я работаю над обработкой процессов вручную одним кликом, и я столкнулся с проблемой с этими всплывающими окнами msgbox из сценария vbs. По существу, я использую PowerShell и делать что-то вроде:Можно ли реагировать на vbscript msgbox из сценария powershell?

foreach ($loc in $locs): 
    & cscript $loc 

Где $ LOC в $ оргкомитетов является переменным, держащим путем к .vbs файла, который должен быть запущен.

Проблема в том, что один из наших разработчиков включил два оператора msgbox в каждый из файлов .vbs, и они всплывают, и вам нужно щелкнуть ok. Было бы тривиально редактировать скрипты vbs и удалять их, но я не хочу менять скрипты наших разработчиков, поэтому вопрос: можно ли заставить powershell реагировать на msgbox (ы), которые генерируются из строки cscript ? Я не уверен, как я приведу коробку в контекст или отреагирую на нее через powershell.

ответ

5

Запуск скриптов в пакетном режиме, это позволит предотвратить приглашение от застопорились исполнения:

foreach ($loc in $locs){ 
    & cscript //B $loc 
} 

Из сообщения cscript /? использования:

Usage: CScript scriptname.extension [option...] [arguments...] 

Options: 
//B   Batch mode: Suppresses script errors and prompts from displaying 
//D   Enable Active Debugging 
//E:engine Use engine for executing script 
//H:CScript Changes the default script host to CScript.exe 
//H:WScript Changes the default script host to WScript.exe (default) 
//I   Interactive mode (default, opposite of //B) 
... 
+0

Так много времени вошел в overthinking что. Я попробую попробовать, но похоже, что это, вероятно, должно сработать. – abou

+0

Я пробовал это, и я собираюсь принять ответ, потому что он отвечает на вопрос, как было задано. Я не могу использовать это, потому что vbs в свою очередь вызывает sqlplus и sqlldr, а те, которые не выполняются с этим коммутатором. – abou

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