Mittels CMD alle Dateien löschen mit Ausnahme bestimmter Datei

frad

Ensign
Registriert
Okt. 2017
Beiträge
198
Hallo, ich würde gerne einen Ordner inkl. Unterordner per CMD löschen - ausgenommen sind Dateien, welche das Wort "reports" enthalten. Diese dürfen nicht gelöscht werden...

Wie kann ich so etwas mittels CMD machen...?

Danke schon mal und Grüße
 
Was hast du denn schon versucht? Weil sowas wie "Dateien löschen" findet man doch unzählige Antowrten und Skripte im Netz. Deshalb verstehe ich grade noch nicht an welcher Stelle es scheitert?
 
Dateien löschen rekursiv ist nicht das Problem - die Ausnahme einzubauen, daran scheitert es aktuell...

Ordner liegt auf D:\Test

Hier mal ein Ansatz:
for /f "delims=" %i in ('dir /b /a-d "D:\Test"^|findstr /v /b "reports"') do echo del "D:\Test\%i"
 
kannst du mal

Code:
for /f "usebackq tokens=*" %%i ('dir /b /a-d "D:\Test" ^| findstr /v "[\\][^\\]*reports[^\\]*$"` ) do (
  echo del /s /q %%i
)

probieren?
 
Meldung: Datei kann nicht gefunden werden.

Die Datei lautet bspw: 1234_reports_xxx.pdf

Kann je Ordner abweichen. Die Regel soll lauten: lösche alle PDF´s rekursiv bis auf PDF´s mie das Wort "reports" enthalten nicht...
 
tony_mont4n4 schrieb:
Gibt es einen Grund das Powershell nicht verwendet wird?
Wollt ich auch grad fragen.

So z.B.
PowerShell:
$pfad = "C:\Test"
$endung = "*.txt"
$muster = "reports"

$dateien = Get-ChildItem $pfad -Recurse -Include $endung
foreach ($datei in $dateien) {
    If ($datei.basename -match $muster)
    {
        Remove-Item $datei -Recurse -Force
    }
}
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tony_mont4n4
Sollten nicht alle Pdf, außer die, die den Begriff "reports" enthalten, gelöscht werden?

So wird dann ein Schuh draus:

PowerShell:
$pfad = "C:\Test"
$endung = "*.pdf"
$muster = "reports"

$dateien = Get-ChildItem $pfad -Recurse -Include $endung
foreach ($datei in $dateien) {
    If ($datei.basename -NotMatch $muster)
    {
        Remove-Item $datei -Recurse -Force
    }
}
 
Zurück
Oben