Asegúrese de que solo se ejecute 1 instancia de PowerShell Script en un momento dado

Estoy escribiendo un script por lotes en PowerShell v1 que se programará para ejecutarse, digamos una vez por minuto. Inevitablemente, llegará un momento en que el trabajo necesita más de 1 minuto para completarse y ahora tenemos dos instancias de la secuencia de comandos en ejecución, y luego posiblemente 3, etc.

Quiero evitar esto haciendo que el script compruebe si hay una instancia de sí mismo ejecutándose y, en ese caso, el script se cierra.

Lo he hecho en otros idiomas en Linux, pero nunca lo he hecho en Windows con PowerShell.

Por ejemplo en PHP puedo hacer algo como:

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

¿Hay algo como esto en PowerShell v1? No he encontrado nada como esto todavía.

De estos patrones comunes, ¿cuál tiene más sentido con un script de PowerShell que se ejecuta con frecuencia?

Archivo de bloqueoProgramador de tareas del sistema operativoBucle infinito con un intervalo de sueño

Respuestas a la pregunta(6)

Su respuesta a la pregunta