Вызов-выражение для запуска скриптов .ps1 - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь создать службу, которая сканирует папку. Когда он обнаруживает определенные файлы, он переименовывает их, а затем создает переменные для остальной части сценария. Это все работает нормально, но я пытаюсь найти способ запустить этот скрипт, чтобы последующие окна, которые он запускает, были минимизированы. Я попробовал следующее, но 2 сценария по-прежнему запускают окно, каждое из которых мигает на экране.

Я попытался преобразовать файл в EXE и службу, но затем он отказывается работать. Надеемся на быструю однострочку, если кто-нибудь может помочь?

Set-Location -Path C:\scripts\ICVT

while ($true) {
invoke-expression 'cmd /c start powershell -WindowStyle Minimized -Command {.\file_checker.ps1}';
Start-Sleep 5
invoke-expression 'cmd /c start powershell -WindowStyle Minimized -Command {.\kill_checker.ps1}';
Start-Sleep 5
}

1 Ответ

0 голосов
/ 16 марта 2019

Похоже, вам нужно использовать Start-Job для запуска сценария в фоновом режиме.Просто замените Invoke-Expression на Start-Job:

Set-Location -Path C:\scripts\ICVT

while ($true) {
Start-Job -FilePath '.\file_checker.ps1}';
Start-Sleep 5
Start-Job -FilePath '.\kill_checker.ps1}';
Start-Sleep 5
}

Он также будет принимать блоки скриптов.См. about_jobs для получения дополнительной информации о запуске и управлении фоновыми заданиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...