Batchdatei zum wöchentlichen Löschen des Ordnerinhalts, AUSSER einer .bat-Datei im Ordner

Batchdatei zum wöchentlichen Löschen des Ordnerinhalts, AUSSER einer .bat-Datei im Ordner

Ich habe viele Varianten meiner Situation gesehen, kann aber keine finden, mit der ich zurechtkomme (sehr unerfahren). Grundsätzlich habe ich einen Ordner (E:\Downloads), zu dem Ordner hinzugefügt werden und der auch eine Batchdatei (Extractor.bat) enthält. Ich möchte einmal pro Woche alle Ordner und Dateien aus E:\Downloads löschen, aber NIEMALS Extractor.bat löschen. Vielen Dank für jede Hilfe dazu! (Der Teil mit dem wöchentlichen Vorgang ist im Skript nicht erforderlich, ich weiß, dass ich einfach eine Windows-Aufgabe festlegen kann, um die Bat-Datei an bestimmten Tagen auszuführen).

Windows 10

Antwort1

Sehen Sie die Set DEBUG=echoLinie?

Deaktivieren Sie diese Zeile mit REModer , ::wenn Sie sicher sind, dass sie das gewünschte Ergebnis liefert. Dieses Skript ist harmlos, solange es existiert, aber nicht, wenn Sie es entfernen.

Der if /i not "%DownloadsDir%" == "%CD%"Spruch rührt daher, dass ich dumm war und alle meine Dateien in das falsche Verzeichnis gelöscht habe, als ich jünger und dümmer war.

cd /dSie können auch „in“ ändern pushdund popdunten ein einfügen, wenn Sie dies innerhalb von cmd.exe ausführen und dadurch Ihr aktueller Pfad durcheinandergerät.

@echo off
SetLocal
Set DEBUG=echo

Set DownloadsDir=E:\Downloads

cd /d %DownloadsDir%
if /i not "%DownloadsDir%" == "%CD%" echo Bad directory! && goto :EOF

for /F "delims=" %%d in ('dir /ad /b') do %DEBUG% rd /s /q "%%d"
for %%f in (*.*) do if /i not "%%f"=="Extractor.bat" %DEBUG% del /F /Q "%%f"

EndLocal

verwandte Informationen