Возможно, этот сценарий подойдет. Мы не запускаем исполняемый файл PowerShell каждую минуту (кстати, это дорого). Вместо этого мы запускаем его один раз, вызывая дополнительный сценарий, который вызывает рабочий сценарий раз в минуту (или фактически ждет минуту после того, как рабочий сценарий завершится или завершится ошибкой).
Создайте начальный Invoke-MyScript.ps1:
for(;;) {
try {
# invoke the worker script
C:\ROM\_110106_022745\MyScript.ps1
}
catch {
# do something with $_, log it, more likely
}
# wait for a minute
Start-Sleep 60
}
Запустите это из Cmd (например, из загрузочного файла .bat):
start /min powershell -WindowStyle Hidden -Command C:\ROM\_110106_022745\Invoke-MyScript.ps1
Окно PowerShell появляется на мгновение, но оно сворачивается из-за start /min
, и через мгновение оно скрывается навсегда. Так что на самом деле на мгновение появляется только значок панели задач, а не само окно. Это не так уж плохо.