Dann ändert man das Script etwas ab:
Code:
md C:\Leer
Robocopy "C:\Leer" "C:\Dokumente\Kundendaten" /mir /Log+:"%userprofile%\Desktop\Sicheres Löschen.log"
cipher /w:C:\Dokumente\Kundendaten
rd /s /q C:\Leer
shutdown -s -t 60
Schon hat man auf dem Desktop ein Log liegen, in dem festgehalten ist was Robocopy durchgeführt hat. Durch "/log+" ist dafür gesorgt, dass das neue Protokoll immer an eine schon bestehende Logdatei angehängt wird. Ist das nicht gewünscht, kann man das "+" auch weglassen, dann wird das Log bei jedem Lauf des Scriptes neu erstellt. Will man jeden Schritt mitloggen, dann leitet man eben die Meldungen sämtlicher Zeilen in das Robocopy Log um. Hat man /log+ angegeben, muss man eben mit "if exist" erst prüfen ob die Datei schon existiert und eine Sprungmarke setzen, die entweder die Datei anlegt oder mit dem eigentlichen Script fortfährt und das schon bestehende Log nutzt.
Die Ausgabe von Cipher muss man gar nicht erst loggen, denn das überschreibt lediglich die Sektoren der in diesem Ordner zum Löschen freigegebenen Dateien. Weder Robocopy noch Cipher bleiben hängen, wenn sie Fehler bemerken. Es ist nur dafür zu sorgen, dass im zu überschreibenden Ordner keine gesperrten Dateien existieren, denn die übergeht Robocopy. Um zu verhindern, dass die zu löschenden Daten gesperrt sind, könnte man durchaus vorher noch mit "Taskkill /t /f /im Programm.exe" den Prozess beenden, der auf den Ordner mit den Daten zugreift.
Das ist alles kein Hexenwerk, wenn man das richtig ausgestaltet.
So kann das dann aussehen und es funktioniert wie gewünscht, einschliesslich des Logs:
Code:
@Echo off
chcp 1252 >nul
Set Log="%userprofile%\Desktop\Sicheres_Löschen.log"
if exist %Log% (goto Fortsetzung) else goto neu
:neu
@Echo Erstellung von %Log% am %Date% um %Time% >%Log%
goto weiter
:Fortsetzung
@Echo Fortsetzung von %Log% am %Date% um %Time% >>%Log%
goto weiter
:weiter
@Echo. >>%Log%
@Echo Sämtliche Instanzen des erstellenden Programmes werden beendet >>%Log%
@Echo. >>%Log%
Taskkill /t /f /im Notepad.exe >>%Log%
@Echo. >>%Log%
@Echo Das erstellende Programm ist beendet, weiter gehts mit dem Löschen und Bereinigen >>%Log%
@Echo. >>%Log%
md C:\Leer
Robocopy "C:\Leer" "%userprofile%\Desktop\Testordner" /mir >>%Log%
cipher /w:"%userprofile%\Desktop\Testordner"
rd /s /q C:\Leer
shutdown -s -t 60
Die Pfade, Dateinamen und der Namen des zu beendenden Programmes müssen natürlich vom Nutzer angepasst werden. Aber als Grundgerüst reicht das aus.