Nur eine Batch-Instanz

Nur eine Batch-Instanz

Ich habe dieses Skript hier gefunden, es funktioniert großartig, aber das Problem ist, dass ich einen Pfad festlegen möchte, in dem diese Sperrdatei gespeichert wird, z. B. D:\mylogs. Aber dieses Skript erstellt ein Protokoll dort, von wo es ausgeführt wird, und das ist nicht in Ordnung. Kann mir jemand helfen, dieses Skript zu ändern, damit ich meinen eigenen Ordner für Sperrdateien auswählen kann?

Wie kann ich verhindern, dass dieselbe Batchdatei zweimal ausgeführt wird, um nur eine Instanz zuzulassen?

Wie ändere ich diesen Code, damit ich auswählen kann, wo die locl-Datei erstellt wird? Denn jetzt wird sie dort erstellt, wo das Skript gestartet wird, aber ich möchte die Sperrdatei in meinem Ordner wie D:\script. Kann mir bitte jemand helfen?

: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

verwandte Informationen