joe2011
Goto Top

Batch Dateien kopieren, deren Dateiname 8 Stellen lang ist

Hallo zusammen,

Problem: es werden durch verschiedenen Quellen PDF´s generiert, die eigentlich eine Dateinamenslänge von 8 Stellen haben sollten.
Durch fehlerhafte Erkennung etc. kommen auch Dateien vor, die kürzere oder längere Dateinamen haben - die will ich löschen bzw. nur die richtigen kopieren und den Rest dann löschen.

Alle 5 Minuten lasse ich den Ordner nach neuen Dateien durchsuchen - es betrifft also immer eine Wildkart bzw. Schleife.

Also:
12345678.pdf ist gut.
012345678.pdf ist böse.

Ich habe schon viel gesucht und doch keine Batch-Lösung bisher gefunden.

Gruß

Joe

Content-Key: 370895

Url: https://administrator.de/contentid/370895

Printed on: April 19, 2024 at 06:04 o'clock

Mitglied: 135950
Solution 135950 Apr 12, 2018 updated at 08:59:56 (UTC)
Goto Top
Batch
@echo off
For /f "delims=" %%a in ('dir /b /s /a-d "c:\Ordner\*.pdf" ^| findstr  /iv "\\........\.pdf$" 2^>nul') do del "%%a"  
Powershell
dir "c:\Ordner\*.pdf" -File -Recurse | ?{$_.Basename.length -ne 8} | del -Force  
Gruß m.
Member: NetzwerkDude
NetzwerkDude Apr 12, 2018 at 10:09:52 (UTC)
Goto Top
Hier auch was für Powershell, in der Variante mit RegularExpressions:
gci | ? Name -match '.{8}\.pdf$'  

der befehlt generiert dir die liste der dateien die exakt 8 beliebige zeichen im namen haben und eine .pdf am schluss
Mitglied: 135950
Solution 135950 Apr 12, 2018 updated at 10:45:16 (UTC)
Goto Top
Zitat von @NetzwerkDude:

Hier auch was für Powershell, in der Variante mit RegularExpressions:
gci | ? Name -match '.{8}\.pdf$'  

der befehlt generiert dir die liste der dateien die exakt 8 beliebige zeichen im namen haben und eine .pdf am schluss
Der Regex hat in diesem Fall einen gravierenden Fehler, wenn dann müsste dieser so aussehen, da ansonsten auch längere Dateien gematcht werden!
^.{8}\.pdf$
Es fehlte also das Caret (^) für den Anfang.

Gruß m.
Member: NetzwerkDude
NetzwerkDude Apr 12, 2018 at 10:51:05 (UTC)
Goto Top
shit, hast recht face-smile
Member: Joe2011
Joe2011 Apr 12, 2018 at 11:04:09 (UTC)
Goto Top
Danke an euch.