
Ich habe einen Ordner, der von einer Anwendung mit automatisch generierten Dateien gefüllt wird. Es werden CSV- und PNG-Erweiterungen erstellt und dort gespeichert. Wir müssen alle Dateien im Ordner löschen, außer bestimmte PNG-Dateien, deren Dateiname mit „abc-“ beginnt. Das System ist eine Windows Server 2012 R2-Box, und das Ziel ist, dies jede Nacht über eine Batchdatei mit dem Taskplaner erledigen zu lassen.
Ich habe versucht, ein paar verschiedene vorgefertigte Skripte zu verwenden, würde diese vorangestellten PNG-Dateien aber nicht ausschließen, sondern nur alle entfernen. Wie gehe ich dabei vor?
Antwort1
Können Sie es mit Powershell versuchen? So etwas wie:
$path = "C:\site\temp"
gci -Path $path | ? {!($_.Name -ilike "abc-*.png")} | % { Remove-Item -Path $_.FullName }
Antwort2
Mit Batch können Sie dies folgendermaßen tun:
@Echo OFF
For %%# In ("*.*") DO (
If /I "%%~x#" EQU ".png" (
(Echo "%%~n#"| Findstr "^abc-")1>nul 2>&1 || (
Del /Q "%%~#"
)
)
)
Pause&Exit
Ich iteriere alle Dateien (die eine Erweiterung haben). Wenn die Datei die Erweiterung „.png“ hat, überprüfe ich, ob der Dateiname mit „abc-“ beginnt, um ihn auszuschließen.
Bitte erstellen Sie vor dem Testen eine Sicherungskopie Ihres Ordners.
Antwort3
Sichern Sie außerdem vor dem Testen den Inhalt des Ordners, an dem Sie arbeiten.
Schritt 1: Erstellen Sie ein Unterverzeichnis unter dem betreffenden Ordner.
Schritt 2: Verschieben Sie die zu speichernden Dateien in dieses Unterverzeichnis.
Schritt 3: Löschen Sie alles, was im Ordner übrig ist.
Schritt 4: Verschieben Sie die Dateien aus dem Unterverzeichnis zurück in den Ordner.
Schritt 5: Löschen Sie das Unterverzeichnis.
Schritt 6: Sehen Sie, was Sie haben.
Es folgt ein einfaches Skript.
REM C:\SCRIPTS\MOVERPNG.CMD
C:
ECHO OFF
CLS
CD \SITE\TEMP
MD BAR
MOVE /y ABC-*.PNG \SITE\TEMP\BAR
DEL /y *.PNG
DEL /y *.CSV
CD BAR
MOVE *.PNG C:\SITE\TEMP
CD ..
RD /q BAR
ECHO MOVERPNG has completed.
DIR *.* /P /O:N