Убедитесь, что в любой момент времени работает только 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?
Блокировка файлаПланировщик задач ОСБесконечный цикл с интервалом сна