Sólo una instancia de lote

Sólo una instancia de lote

Encontré este script aquí, funciona muy bien, pero el problema es que me gusta establecer una ruta donde se almacena ese archivo de bloqueo, como D:\mylogs. Pero este script crea un registro desde donde se ejecuta y eso no está bien. ¿Alguna ayuda para cambiar este script para poder seleccionar mi propia carpeta para bloquear archivos?

¿Cómo puedo evitar ejecutar el mismo archivo por lotes dos veces para permitir solo una instancia?

Cómo cambiar este código para poder seleccionar dónde se crea el archivo locl. Porque ahora se crea donde se inicia el script, pero quiero bloquear el archivo en mi carpeta como D:\script. ¿Alguien puede ayudarme, por favor?

:init
set "started="
2>nul (
 9>"%~f0.lock" (
  set "started=1"
  call :start
 )
)
@if defined started (
    del "%~f0.lock" >nul 2>nul
) else (
    echo Process aborted: "%~f0" is already running
    @ping localhost > nul
)

exit /b




:start
cd /d %~dp0
:: REST OF THE SCRIPT

información relacionada