readonly
Goto Top

Directory und Dateinamen aus Datei auslesen, in Directory wechseln und Dateiennamen umbenennen

So, jetzt wird es kompliziert face-smile

Ich habe ein Datei, die ausgelesen werden soll. Im gleichen Verzeichnis gibt es n Ordner mit n Dateien.

Die Datei, die ausgelesen werden soll, hat folgendes Format:

SF001
01 aaaaaaaaa
02 bbbbbbbbbbb
03 ccccccccc
.
.

SF002
01 ddddddddddd
02 eeeeeeeeee
03 fffffffffffffff
04 ggggggggggg
.
.
.
.

SF003
01 hhhhhhhhhh
02 iiiiiiiiiiiiiiiiii
.
.
.

Es soll jetzt im Verzeichnis SF001 die Datei, die mit 01 anfängt, also z.B. 01.txt in 01_aaaaaaaaa.txt umbenannt werden.
Dann die Datei 02.txt in 02_bbbbbbbbb.txt. usw. usw

Wenn Verzeichnis SF001 agearbeitet ist, dann ins Verzeichnis SF002 wechseln und die ganze Prozedur mit 01.txt nach 01_ddddddddddd.txt umbenennen.....

Vielleicht kann man die Verzeichnisse daran erkennen, dass sie alphanumerisch sind und daher Verzeichnisse sein müssen? Oder mit SF beginnen, denn das werden immer Verzeichnisse sein.

Vielen Dank im voraus!

Content-Key: 75935

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

Printed on: April 23, 2024 at 18:04 o'clock

Member: bastla
bastla Dec 13, 2007 at 21:37:12 (UTC)
Goto Top
Hallo readonly und willkommen im Forum!

Das könnte so gehen:
@echo off & setlocal
set "Basis=D:\Temp"  
set "Liste=DateiListe.txt"  

for /f "usebackq tokens=1*" %%i in ("%Basis%\%Liste%") do call :ProcessLine "%%i" "%%j"  
goto :eof

:ProcessLine
set "P=%~1"  
if /i "%P:~0,2%"=="SF" set "Verz=%Basis%\%P%" & goto :eof  
if exist "%Verz%\%P%.txt" ren "%Verz%\%P%.txt" %2.txt 2>nul  
Bitte bei der Angabe des Basisordners keinen abschließenden "\" (daher zB auch für "D:\" nur "D:" schreiben) und für die Dateiliste nur den Namen (ohne Pfadangabe) verwenden.

Bei Umbenennungsaktionen immer zu berücksichtigen: Falls im Zielordner bereits eine Datei mit dem neuen Namen existiert, wird (in der aktuellen Fassung) die zu bearbeitende Datei (0x.txt) nicht umbenannt.

Grüße
bastla
Member: readonly
readonly Dec 14, 2007 at 09:07:49 (UTC)
Goto Top
Klasse, vielen Dank. Nach ein paar Modifikationen für mein Umfeld hat es einwandfrei geklappt.
Nur beim renamen macht er aus ’ (Hochkomma) ein Æ. Aber das krieg ich noch hin face-smile Zur Not mit einem rename programm, denn es werden schon so um die 7000 Dateien......

Nochmals vielen Dank!
Member: bastla
bastla Dec 14, 2007 at 09:30:06 (UTC)
Goto Top
Hallo readonly!

Du kannst es mit dem Umschalten der verwendeten Codepage versuchen - dazu vor der "for"-Schleife ein "chcp 1252" einfügen.

Grüße
bastla
Member: readonly
readonly Dec 14, 2007 at 10:38:51 (UTC)
Goto Top
hat auch geklappt!

Nochmals vielen Dank!
Member: Biber
Biber Dec 14, 2007 at 11:50:13 (UTC)
Goto Top
Moin readonly,

Willkommen auch von mir.
Nachdem ich in den letzten Tagen so oft genervt auf Beiträge im Frittenbudendeutsch reagiert habe, möchte ich auch positives Feedback nicht zurückhalten.

Du hast eine klare und vollständige Aufgabenstellung formuliert, immer prompt rückgemeldet und einen absolut sauberen Erst-Beitrag hinterlassen.

Wenn Du dieses lobenswerte Verhalten weiter beibehältst, dann kannst Du auch diese nicht-so-gern-gelesene Phrase "Vielen Dank im voraus" beim nächsten Mal einsparen, und selbst ich habe nichts mehr zu meckern.

Grüße
Biber