2016-07-27 13 views
-1

Ich habe einen Bericht, der Dateien aus einem Netzwerkordner (NTFS) in einen anderen spezifischen Netzwerkordner (NTFS) ablegt. Einige der Dateien enthalten eine zufällige Zahlenfolge im Dateinamen (Beispiel Dateiname: xxsample_export 2131.xml). Ich muss alle Dateien in dem Ordner finden und löschen, die Zahlen im Dateinamen enthalten. Ich habe versucht, Findstr zu verwenden, aber bisher kein Glück. :(Batch - Dateien in Verzeichnis suchen, in dem Dateiname eine Nummer enthält

Edit: Ich habe schon versucht, diese, ich findstr unglaublich bin neu Vielen Dank für Ihre Unterstützung

for /F %%F in (dir /A -D "%Path%\*.xml" | findstr /R "[0-9]*.xml" do del %%F"  
+0

Bitte zeigen Sie uns, was Sie versucht haben! – aschipfl

+0

Sorry, ich habe es versucht: –

Antwort

2

Lame aber schnell (I del yourdir\*[0-9].xml dachte funktionieren würde, aber nooooo) und funktioniert nur.. wenn Sie flache Löschung benötigen, suchen Sie sonst bei aschipfl Lösung dir /B und findstr mit

In einer BAT-Datei (yourdir das Verzeichnis von Dateien aus löschen möchten.):

for %%n in (1 2 3 4 5 6 7 8 9 0) do for %%a in (yourdir\*%%n.xml) do del "%%a" 2>NUL 
+0

Gute Idee, +1! Dies kann jedoch zu Fehlernachrichten führen, da Sie den Verzeichnisinhalt ändern, während Sie ihn mit "for" durchlaufen, da "for" nicht alle übereinstimmenden Elemente im Voraus aufzählt. Referenz auch [dieser Beitrag] (http://stackoverflow.com/q/31975093) ... – aschipfl

+0

Wenn ich sage, es ist lahm, versuche ich, meine Versprechen zu halten :) Bearbeitet, um Fehler zu maskieren. Nicht optimal, gebe ich zu –

+0

Leider löscht dies jede Datei im Ordner und nicht nur die Dateien mit den Nummern. –

2

Hier ist eine Lösung mit findstr:

set "LOCATION=\path\to\files" 
for /F "eol=| delims=" %%F in (' 
    dir /B /A:-D "%LOCATION%\*.xml"^
     ^| findstr /I /R "[0-9][0-9]*\.xml$" 
') do (
    del "%LOCATION%\%%F" 
) 

Dies löscht alle .xml Dateien, die Zahlen als letzten Teil ihrer Dateinamen enthalten.

+0

Diese Lösung wird verwendet, wenn Sie eine rekursive Löschung benötigen –

+0

Ah, das ist _nicht rekursiv_, dies betrifft nur eine Verzeichnisebene; Oder verstehe ich dich falsch? – aschipfl

+0

Ich dachte, es wäre rekursiv! Es tut uns leid. aber wir wissen nicht das wirkliche Bedürfnis von der Frage. –

Verwandte Themen