Batch-Skript löschen sich selbst

Ich habe eine .bat Skript startet eine java Programm.
Die java Programm löscht den Ordner, wo die .bat sitzt.
Ich habe keine Möglichkeit, zu berühren, der java Programm. Ich kann nur ändern, die .bat Datei.

Das problem ist, dass die .bat Datei, sobald Sie gelöscht werden, Stoppt seine Ausführung sofort ohne Abschluss.
Aber es gibt einige cleanup-Aufgaben gemacht werden, nachdem die java Programm beendet.

Ich versuchte, kopieren Sie den .bat Datei irgendwo anders hin und starten Sie in einem Ort, wo es nicht gelöscht werden. Ach, sobald die original - .bat gelöscht wird, da es noch in der Ausführung, der gleiche Absturz passiert, und es nicht fertig stellen.

Hier sind zwei Beispiel-Dateien (für den Zweck des Beispiels, lassen Sie uns so tun, als würden Sie sich in D:\tmp) :

löschen.bat

echo "delete start"

pause

del launch.bat

pause

echo "delete end"

starten.bat

echo "launch start"

setlocal enabledelayedexpansion enableextensions 

if "%CD%"=="C:\tmp" (

    echo "in temp"
    d:
    cd \tmp
    delete.bat

)

if "%CD%" NEQ "C:\tmp" (

    echo "not in temp"
    mkdir C:\tmp
    copy launch.bat C:\tmp\launch.bat
    echo "launch copied"
    C:
    cd \tmp
    cmd /c launch.bat

)

echo "launch end"

Starten launch.bat funktionieren würde, wenn die Ausführung der kopiert launch.bat waren, getrennt von der ersten.

Kennt jemand einen Weg, um eine .bat am Ende seiner Ausführung, auch wenn es gelöscht wird, während es ausgeführt wird?

InformationsquelleAutor glmxndr | 2009-11-30
Schreibe einen Kommentar