Selbstlöschende Batch erstellen
Manchmal ist es notwendig eine Batch zu löschen nachdem diese ihre arbeit getan hat. Die Herausforderung daran ist, dass solange eine Batch läuft, Windows einen Handle auf die Datei offen hat und diese somit nicht gelöscht werden kann.
Mit folgendem Befehl wird der Löschbefehl außerhalb des Batchcontextes ausgeführt und damit der Handle auf die Batch geschlossen sein:
start cmd /K "echo Delete Batch && timeout 2 && del Test.bat && exit 0"
Zum Testen kann der Befehl in eine Test.bat kopiert und ausgeführt werden. Danach sollte die Batch wieder verschwunden sein.
Wenn kein zweites cmd Fenster auftauchen soll während das Kommando ausgeführt wird, dann kann mit /B von start das Fenster unterdrückt werden.
Der Befehl sieht dann folgendermaßen aus:
start /B cmd /K "echo Delete Batch && timeout 2 && del Test.bat && exit 0"