Ordner nach 8-Stelligen Dateinamen durchsuchen und umbenennen
Liebes Forum!
Ich bin jetzt schon seit geraumer Zeit auf der Suche nach einer Lösung für folgendes Problem:
Batch-Datei die folgendes kann/macht:
1) Ordner nach 8-stelligen Dateinamen durchsuchen (sind immer *.pdf Dateien)
2) Wenn gefunden, dann unbenennen: §§§1§§ Dateiname §§§§§ Dateiname.Endung
@2) ...habe ich schon eine gute Lösung - Dank administrator.de (wobei statt § immer ein anders Zeichen gemacht wird)
@1) ...war der Plan, evt mit "dir" und 8 Fragezeichen oder Sternchen zu arbeiten, funktioniert leider nicht.
Für Ideen und Inputs wäre ich wircklich sehr dankbar!!!
Schönen 2. Weihnachtstag,
Koeson8
Ps.: so schauts im Moment bei mir aus:
Ich bin jetzt schon seit geraumer Zeit auf der Suche nach einer Lösung für folgendes Problem:
Batch-Datei die folgendes kann/macht:
1) Ordner nach 8-stelligen Dateinamen durchsuchen (sind immer *.pdf Dateien)
2) Wenn gefunden, dann unbenennen: §§§1§§ Dateiname §§§§§ Dateiname.Endung
@2) ...habe ich schon eine gute Lösung - Dank administrator.de (wobei statt § immer ein anders Zeichen gemacht wird)
@1) ...war der Plan, evt mit "dir" und 8 Fragezeichen oder Sternchen zu arbeiten, funktioniert leider nicht.
Für Ideen und Inputs wäre ich wircklich sehr dankbar!!!
Schönen 2. Weihnachtstag,
Koeson8
Ps.: so schauts im Moment bei mir aus:
For /F %%i in ('dir /B ????????.pdf') do (
goto Batch
goto End
)
:Batch
For /F %%i in ('dir /B ????????.pdf') do set Dateiname=%%i
for /f "delims=. tokens=1" %%i in ("%Dateiname%") do set Titel=%%i
for /f "delims=. tokens=2" %%i in ("%Dateiname%") do set Endung=%%i
ren "%Dateiname%" "§§§1§§%Titel%§§§§§%Titel%.%Endung%"
:End
Pause
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 225360
Url: https://administrator.de/forum/ordner-nach-8-stelligen-dateinamen-durchsuchen-und-umbenennen-225360.html
Ausgedruckt am: 13.04.2025 um 21:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
Und mit den Code tags wird es allen leichter deinen Code zu lesen. Formatierungen in den Beiträgen
Gruß,
Peter
Zitat von @koeson8:
@1) ...war der Plan, evt mit "dir" und 8 Fragezeichen oder Sternchen zu arbeiten, funktioniert leider nicht.
Was funktioniert da nicht? Bitte genau deinen bei dir erzeugten Fehler(n) hier für uns nachvollziehbar reinstellen. Wir könenn zwar deine Fehler erahnen, aber unsere Kistallkuglen hängen noch am Weihnachtsbaum.@1) ...war der Plan, evt mit "dir" und 8 Fragezeichen oder Sternchen zu arbeiten, funktioniert leider nicht.
Und mit den Code tags wird es allen leichter deinen Code zu lesen. Formatierungen in den Beiträgen
Gruß,
Peter
Hallo,
Du startest deine Batchdatei aber schon in einem sogenannten CMD Fenster/ DOS Fenster aus, oder? Und wenn es keinen Fehler ausgibt, wie kommst du dann da drauf das es einen Fehler macht bzw. erzeugt?
) mit der Endung .PDF aber, auch bei mir werden Dateien ausgespuckt mit weniger als 8 Zeichen sowie mit mehr als 8 Zeichen im Dateinamen. (Windows 7 Ult. SP1 64 Bit)
Ein Dir /X ????????.txt liefert des Rätsels Lösung
Aha, der Lange dateiname sowie der Kurze (8.3) dateiname werden beim DIr berücksichtigit...
http://stackoverflow.com/questions/11972572/how-can-i-delete-files-with ...
Gruß,
Peter
Du startest deine Batchdatei aber schon in einem sogenannten CMD Fenster/ DOS Fenster aus, oder? Und wenn es keinen Fehler ausgibt, wie kommst du dann da drauf das es einen Fehler macht bzw. erzeugt?
Das Problem ist, dass es nur die letzte Datei in meinem Testordner umbenennt.
Dann tut deine Batch es doch wie du erwarten solltest. Wenn ich es nocheinmal durchlaufen lasse, die Vorletzte
Oder nicht doch wieder die letzte (nur eben noch nicht umbenannte) deiner ????????.pdf Dateien?§§1§§§Name§§§§§Name.pdf um...
Was ergibt ein dir /B ????????.pdf bei deinem uns unbekannten OS? Ich gehe davon aus aus du dich im richtigen Ordner bewegst...Hier steht zwar das es dann genau Acht Zeichen sein sollten (und auch sind E:\>dir ????????.txt
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\
24.05.2011 19:58 412 Neues Textdokument.txt
18.05.2013 12:19 682 WLANs uebertragen.txt
2 Datei(en), 1.094 Bytes
0 Verzeichnis(se), 39.304.200.192 Bytes frei
Ein Dir /X ????????.txt liefert des Rätsels Lösung
E:\>dir /X ????????.txt
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\
24.05.2011 19:58 412 NEUEST~1.TXT Neues Textdokument.txt
18.05.2013 12:19 682 WLANSU~1.TXT WLANs uebertragen.txt
2 Datei(en), 1.094 Bytes
0 Verzeichnis(se), 39.304.200.192 Bytes frei
Aha, der Lange dateiname sowie der Kurze (8.3) dateiname werden beim DIr berücksichtigit...
Eigentlich würde ich gern alle 8-stelligen Dateinamen unter einmal umbenennen, und falls sie +/- als 8 Stellen haben sollen sie ignonriert werden.
Hmmm. Trivial, hört sich so an, aber dann kommen noch die redmonder Praktikantinen ins Spiel (wie einige hier zu sagen Pflegen).http://stackoverflow.com/questions/11972572/how-can-i-delete-files-with ...
Gruß,
Peter
Hallo koeson8 und willkommen im Forum!
Wenn zumindest einmal die Umbenennung richtig erfolgt, könnte das, basiend auf Deinem Code und ungetestet, etwa so gehen:
Näheres dazu unter "
Falls Du übrigens wirklich Variablen innerhalb der Schleife erzeugen und verwenden müsstest, wäre "
[Edit]
Hinsichtlich der Beschränkung auf genau 8 Zeichen im Namen würde sich dann eher
anbieten.
[/Edit]
Grüße
bastla
Wenn zumindest einmal die Umbenennung richtig erfolgt, könnte das, basiend auf Deinem Code und ungetestet, etwa so gehen:
For /F %%i in ('dir /B ????????.pdf') do ren "%%i" "§§§1§§%%~ni§§§§§%%i"
for /?
" (ziemlich gegen Ende der Ausgabe) bzw im einschlägigen Tutorial zur FOR-Schleife ...Falls Du übrigens wirklich Variablen innerhalb der Schleife erzeugen und verwenden müsstest, wäre "
delayedExpansion
" Dein Stichwort.[Edit]
Hinsichtlich der Beschränkung auf genau 8 Zeichen im Namen würde sich dann eher
for /f %%i in ('dir /b *.pdf^|findstr /irx "........\.pdf"') do ren "%%i" "§§§1§§%%~ni§§§§§%%i"
[/Edit]
Grüße
bastla
Hallo koeson8!
Vorweg zu
oder die Verwendung eines Editors, der eben ASCII-codiert speichern kann, beheben. Allenfalls kannst Du im Windows-Editor auch das Zeichen
verwenden.
Zur Funktionsweise von "
Grüße
bastla
Vorweg zu
Der einzige kleine Schönheitsfehler ist, dass es statt § immer ° schreibt - womit könnte das zu tun haben?
Das hat mit dem Unterschied zwischen ANSI (Windows) und ASCII (CMD) zu tun und lässt sich durch Umstellen der Code-Page von (normalerweise) 850 auf 1252 perchcp 1252
õ
Zur Funktionsweise von "
^|findstr /irx "........\.pdf"
("{dir /b
" hattest Du ja selbst schon verwendet): Es wird damit einfach jede Zeile der Ausgabe (= jeder Dateiname) durch einen Filter geschickt ("gepiped" - in der Schleife ist anstatt |
die "escapte" Fassung ^|
zu verwenden), der nur genau (wird duch "/x
" erreicht; das "r
" wäre nicht unbedingt erforderlich)- 8 beliebige Zeichen (
.
), - einen Punkt (die Schreibweise "
\.
" sorgt dafür, dass eben nicht irgendein Zeichen, sondern nur ein Punkt an dieser Stelle akzeptiert wird) und pdf
(wegen des "/i
" ohne Unterscheidung zwischen Groß- und Kleinbuchstaben)
findstr /?
" ...Grüße
bastla