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-Key: 35478

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

Printed on: April 20, 2024 at 13:04 o'clock

Member: Melanie2
Melanie2 Jul 06, 2006 at 10:33:06 (UTC)
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.
Member: Biber
Biber Jul 06, 2006 at 10:53:39 (UTC)
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]
Member: Melanie2
Melanie2 Jul 06, 2006 at 11:49:02 (UTC)
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!
Member: Biber
Biber Jul 06, 2006 at 17:45:30 (UTC)
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