Убедитесь, что в любой момент времени работает только 1 экземпляр скрипта PowerShell.

Я пишу пакетный скрипт в PowerShell v1, запуск которого запланирован, скажем, раз в минуту. Неизбежно наступит момент, когда для выполнения задания потребуется более 1 минуты, и теперь у нас будет запущено два экземпляра сценария, а затем, возможно, 3 и т. Д.

Я хочу избежать этого, если сам скрипт проверяет, запущен ли уже сам экземпляр, и если да, скрипт завершается.

Я делал это на других языках в Linux, но никогда не делал этого в Windows с PowerShell.

Например, в PHP я могу сделать что-то вроде:

exec("ps auxwww|grep mybatchscript.php|grep -v grep", $output);
if($output){exit;}

Есть ли что-нибудь подобное в PowerShell v1? Я еще не встречал ничего подобного.

Какой из этих общих шаблонов наиболее целесообразен при частом запуске сценария PowerShell?

Блокировка файлаПланировщик задач ОСБесконечный цикл с интервалом сна

Ответы на вопрос(6)

Ваш ответ на вопрос