Hallo zusammen,
ich hatte das Problem, daß ich meinen kompilierten Skript per Parameter löschen wollte und Dirremove natürlich den Dienst versagte, weil der Script selbst ja noch geöffnet war.
Ich hatte hier im Forum die Anregung gefunden, das Ganze über eine Batchdatei zu machen, die temporär abgelegt würde.
Als alter Bat Veteran hab ich das Ganze dann natürlich noch ein Wenig optimiert, daß jetzt gar keine Batchdatei mehr nötig ist:
[autoit]Run(@ComSpec & " /c " & 'ping 127.0.0.1 -n 4 >nul & rmdir /s /q ' & @ScriptDir, @WindowsDir, @SW_HIDE)
[/autoit]Der Ping auf das internal Loopback sorgt für eine Zeitverzögerung von etwa 4 Sekunden, wenn dies der letzte Befehl im Skript ist reicht das eigentlich. Anschliessend wird RMDIR mit dem aktuellen Scriptdirectory aufgerufen. "@Windir" ist das Workingdirectory der CMD, welches ohne Angabe dasselbe wäre wie @Scriptdir, womit wieder ein Prozess ein Bein im Verzeichnis hätte. @SW_HIDE ist ja klar...
Prima, keine externe Datei, wie temporär auch immer, kein include...
Vielleicht könnt Ihr ja was damit anfangen...
GrüüüÜÜÜüüüße, Goink