melanie2
Goto Top

Batch: Info aus Datei lesen und an den Dateinamen anhaengen

Hallo zusammen, ich habe ein Problem mit einer Batchdatei, vielleicht hat dazu ja jemand eine Idee. Meine Batchkenntnisse sind leider schon so eingerostet das es weh tut ;)
Täglich wird mehrmals eine gepackte Datei erstellt nach dem Muster "Name-Datum.zip". Zusätzlich ist in einer .txt eine vierstellige Zahlenfolge in der ersten Zeile hinterlegt (die Datei enthält sonst nichts weiter) die sich mit jeder neuen Datei ändert (Revisionsnummer). Die Batch soll diese txt auslesen und an den bestehenden Dateinamen anhängen. "Name-Datum.zip" soll so zu "Name-Datum-Rev1234.zip" werden. Gibts da viellicht schon was fertiges? Über Google und die Suche hier fand ich leider nicht ganz das passende.

Content-ID: 35478

Url: https://administrator.de/forum/batch-info-aus-datei-lesen-und-an-den-dateinamen-anhaengen-35478.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

Melanie2
Melanie2 06.07.2006 um 12:33:06 Uhr
Goto Top
Das Auslesen habe ich jetzt mit
for /F %%i in (c:\datei.txt) do set Zeile=%%i
hinbekommen, fehlt "nur" noch das setzen des Dateinamens als Variable und das abschließende ren des variablen Dateinamens.
Biber
Biber 06.07.2006 um 12:53:39 Uhr
Goto Top
Moin Melanie2,

vom CMD-Prompt ais wäre eine Skizze
>for %a in (Name*.zip) do For /f %i in (RevInfo.txt) do @echo ren "~%dpnxa" "%~na-Rev%i%~xa"  
[Output]>For /F %i in (RevInfo.txt) do @echo ren "Name-2005-07-03.zip" "D:\temp\Name-2005-07-03-Rev%i.zip"  
[Output]ren "Name-2005-07-03.zip" "Name-2005-07-03-Rev1345.zip"  

...wobei im Beispiel die ZIP-Datei(en) bei mir Name*.zip ( konkret: Name-2005-07-03.zip) heißen.
Und die *.txt-Datei RevInfo.txt.

Falls Du es als Batch-Oneliner speichern willst, jeweils zwei %% statt einem %.
for %%a in (Name*.zip) do For /f %%i in (RevInfo.txt) do @echo ren "%%~dpnxa" "%~na-Rev%%i%%~xa"  
(ungetestete Skizze)
HTH
Biber
[Edit] Sorry..hatte Dein Antwort-Posting noch nicht gelesen...
[/Edit]
[Edit2] Tippfehlerkorrektur: "%%~dpnxa" statt f*ckin' "~%%dpnxa" [/Edit2]
Melanie2
Melanie2 06.07.2006 um 13:49:02 Uhr
Goto Top
so, scheint einwandfrei zu funktionieren, allerdings gab "~%%dpnxa" nichts aus. Mit

for %%a in (c:\test\*.zip) do For /f %%i in (c:\revi.txt) do ren "%%~na.zip" "%%~na-Rev%%i%%~xa"

geht es wunderbar. Besten Dank für Deine Mühe!
Biber
Biber 06.07.2006 um 19:45:30 Uhr
Goto Top
...soviel zum Thema ungetestete Sourcen... *grmpff*

Musste natürlich oben auch
Richtig: "%%~dpnxa" ...statt
Falsch: "~%%dpnxa" heißen.

Ich korrigier es mal oben (für die Nachwelt).
Biber