Löschen Sie alle Dateien im Ordner außer denen mit einem bestimmten Präfix

Löschen Sie alle Dateien im Ordner außer denen mit einem bestimmten Präfix

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 

verwandte Informationen