
Ich habe die folgende Batchdatei zum Löschen von Dateien, deren Pfad und Dateiname in einer Datei gespeichert sind. Sie funktioniert einwandfrei. Ich kann den Pfad und den Dateinamen der zu löschenden Dateien in DELETE-ALL.txt eingeben und die Batchdatei löscht sie. Wenn die Datei beispielsweise einen Eintrag - "download\test.txt" - enthält, wird dieser von mehreren Laufwerken gelöscht.
Es gibt jedoch ein Problem. Wenn der Eintrag nur „download\“ ohne Dateinamen ist, werden alle Dateien, aber keine Ordner, unter „download\“ gelöscht. Das ist sicherlich nicht gut. Gibt es eine Möglichkeit, die Batchdatei so zu ändern, dass sie Einträge ignoriert, die nach „\“ nichts haben (Einträge, die mit „\“ enden)? Oder gibt es vielleicht andere Möglichkeiten, dasselbe zu erreichen?
@REM This script deletes files which include path.
@ECHO Working...
@if exist C:\DELETE-ALL-LOG.txt DEL /Q C:\DELETE-ALL-LOG.txt
@(@for /f "tokens=1 delims=;" %%A in ( C:\DELETE-ALL.txt) do @(
@DEL /Q /A "D:\%%A"
@DEL /Q /A "E:\%%A"
@DEL /Q /A "K:\%%A") >> C:\DELETE-ALL-LOG.txt 2>&1)
@endlocal
@CD /D C:\
@echo Done.