Datei umbenennen in Batchdatei aus Dateiinhalt
hallo,
ich habe eine Zip-Datei für ein Update in der sich der Originalname der Zip-Datei befindet. Mit Hilfe dieses Originalnamens soll die Zip-Datei nach einer ersten Verarbeitung verschoben und umbenannt werden.
Erklärung:
Aus bestimmten programmtechnischen Gründen darf die Zip-Datei nur update.zip heißen.
Sobald die Zip-Datei verarbeitet wurde, würde ich sie gerne an anderer Stelle ablegen... allerdings mit ihrer Versionsbezeichnung (z.B. Update-1.2.3.4.zip)
Der Zielname liegt in einer Datei z.B. version.txt innerhalb des Archives.
Beispiel:
- update.bat liegt in d:\test\install
- update.bat wird d:\test\install\extract entpackt ud verarbeitet (der Teil ist bereits vorhanden!!!)
- Anschließend soll die Datei ins Verzeichnis d:\test\backup_updates verschoben werden
- Der Dateiname soll aber nicht mehr update.zip sondern update-1.2.3.4.zip sein.
- Zielverzeichnis ist statisch und braucht nicht ausgelesen zu werden!
- Die Datei version.txt innerhalb des Archives (update.zip) enthalt folgenden text "update-1.2.3.4.zip".
Wir müßten die passenden Batchzeilen aussehen?
ich habe eine Zip-Datei für ein Update in der sich der Originalname der Zip-Datei befindet. Mit Hilfe dieses Originalnamens soll die Zip-Datei nach einer ersten Verarbeitung verschoben und umbenannt werden.
Erklärung:
Aus bestimmten programmtechnischen Gründen darf die Zip-Datei nur update.zip heißen.
Sobald die Zip-Datei verarbeitet wurde, würde ich sie gerne an anderer Stelle ablegen... allerdings mit ihrer Versionsbezeichnung (z.B. Update-1.2.3.4.zip)
Der Zielname liegt in einer Datei z.B. version.txt innerhalb des Archives.
Beispiel:
- update.bat liegt in d:\test\install
- update.bat wird d:\test\install\extract entpackt ud verarbeitet (der Teil ist bereits vorhanden!!!)
- Anschließend soll die Datei ins Verzeichnis d:\test\backup_updates verschoben werden
- Der Dateiname soll aber nicht mehr update.zip sondern update-1.2.3.4.zip sein.
- Zielverzeichnis ist statisch und braucht nicht ausgelesen zu werden!
- Die Datei version.txt innerhalb des Archives (update.zip) enthalt folgenden text "update-1.2.3.4.zip".
Wir müßten die passenden Batchzeilen aussehen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 04.02.2011 um 16:37:20 Uhr
Datei umbennen in Batchdatei aus Dateiinhalt
Ich benne rum, du bennst herum.. *sing* ... bennen wir nicht alle ein wenig?Set /a rgc+=1
#724
Content-ID: 160131
Url: https://administrator.de/contentid/160131
Ausgedruckt am: 26.11.2024 um 09:11 Uhr
28 Kommentare
Neuester Kommentar
Hallo eccos01!
Falls zumindest XP als OS vorausgesetzt werden darf, ginge mit ein wenig temporärem VBS (zB dem VBA hier "nachempfunden") das Ganze mit Bordmitteln etwa so (kaum getestet):
Als weitere Voraussetzung muss der Inhalt der ersten Zeile von "version.txt" einen gültigen Dateinamen ergeben.
Grüße
bastla
Falls zumindest XP als OS vorausgesetzt werden darf, ginge mit ein wenig temporärem VBS (zB dem VBA hier "nachempfunden") das Ganze mit Bordmitteln etwa so (kaum getestet):
@echo off & setlocal
set "ZIP=d:\test\install\update.zip"
set "Datei=version.txt"
set "Ziel=%TEMP%"
set "Bak=d:\test\backup_updates"
set U=%temp%\Unzip.vbs
> %U% echo Set App=CreateObject("Shell.Application"):Set a=WScript.Arguments:ZIP=a(0):Target=a(1):File=a(2)
>>%U% echo For Each FN In App.Namespace(ZIP).Items:If LCase(FN)=LCase(File) Then App.Namespace(Target).CopyHere App.Namespace(ZIP).Items.Item(File):End If:Next
cscript //nologo %U% "%ZIP%" "%Ziel%" "%Datei%"
if not exist "%Ziel%\%Datei%" echo Datei "%Datei%" nicht gefunden! & goto :eof
set /p VersName=<"%Ziel%\%Datei%"
del %U%
del "%Ziel%\%Datei%"
md "%Bak%" 2>nul
move "%ZIP%" "%Bak%\%VersName%"
Grüße
bastla
@Skyemugen
Tatsächlich steht das nur dort, damit eccos01 einen Hinweis darauf hat, wo im Code auf den Misserfolgsfall (für den es ja bis jetzt noch keine Handlungsanweisung gibt) zu reagieren wäre (und ja, ich hatte fast schon ein "
Grüße
bastla
Was nutzt das echo, wenn danach das Fenster zugeht und man das echo nicht mehr lesen kann?
Ich habe ja kein "exit
" dahinter geschrieben - also bleibt das CMD-Fenster, aus dem ich den Batch starte, auch offen.Tatsächlich steht das nur dort, damit eccos01 einen Hinweis darauf hat, wo im Code auf den Misserfolgsfall (für den es ja bis jetzt noch keine Handlungsanweisung gibt) zu reagieren wäre (und ja, ich hatte fast schon ein "
pause
" - für die Doppelklick-Fraktion - auch noch hingeschrieben) ...Grüße
bastla
Aloha bastla,
bei mir ging das ganze Fenster zu, wenn ich die .bat ausgeführt habe und die Datei nicht da war ... darum verwunderte es mich (Angehöriger der Doppelklickfraktion ^.^)
@eccos
... wieder mal nur die halbe Info gegeben? Da hätte man sich das Extrahieren auch sparen können (extra das Suchen, Testen und Schreiben ... achja)
greetz André
bei mir ging das ganze Fenster zu, wenn ich die .bat ausgeführt habe und die Datei nicht da war ... darum verwunderte es mich (Angehöriger der Doppelklickfraktion ^.^)
@eccos
... wieder mal nur die halbe Info gegeben? Da hätte man sich das Extrahieren auch sparen können (extra das Suchen, Testen und Schreiben ... achja)
greetz André
@Skyemugen
Grüße
bastla
bei mir ging das ganze Fenster zu, wenn ich die .bat ausgeführt habe
... aber nur, wenn es auch vorher nicht offen war ...Grüße
bastla
@bastla
logisch nicht, ich muss ja den Enduser darstellen, der hat keine Shell offen und macht nur Doppelklick ;) (und da müsste dann pause hin)
greetz André
logisch nicht, ich muss ja den Enduser darstellen, der hat keine Shell offen und macht nur Doppelklick ;) (und da müsste dann pause hin)
greetz André
@Skyemugen
Grüße
bastla
den Enduser darstellen, der hat keine Shell offen und macht nur Doppelklick
... oder dragged und dropped ... (und da müsste dann pause hin)
ACK Grüße
bastla
Aloha,
Dabei fällt mir auf (oder ein) ... das .zip ist weg und nur die extrahierte Datei (mit dem Namen aus Zeile eins der version.txt) ist im Ordner %Bak% ...
(set /p ... sollte das irgendwo zum Tragen kommen?)
Zitat von @bastla:
Als weitere Voraussetzung muss der Inhalt der ersten Zeile von "version.txt" einen gültigen Dateinamen ergeben.
Als weitere Voraussetzung muss der Inhalt der ersten Zeile von "version.txt" einen gültigen Dateinamen ergeben.
Dabei fällt mir auf (oder ein) ... das .zip ist weg und nur die extrahierte Datei (mit dem Namen aus Zeile eins der version.txt) ist im Ordner %Bak% ...
(set /p ... sollte das irgendwo zum Tragen kommen?)
Hallo eccos01!
BTW: Wozu braucht eine Frage 3 Fragezeichen (oder 2 Fragen 6 Stück )?
@Skyemugen
Grüße
bastla
Du benutzt aber nicht den Inhalt von version.txt sondern würdest den dateinamen von version.txt als neuen dateinamen verwenden, oder???
Nein (hätte ja auch keinen Sinn )Wie müßte das Kommando denn lauten, wenn ich aus einer Datei mit Namen: "version.txt" einen String auslesen will, der den neuen Namen enthält... und zwar in der Form "update-1.2.3.4.zip"???
Wenn, wie von Dir oben beschrieben, in der Datei "version.txt" dieser neue Dateiname steht, dann:set /p NameNeu=<version.txt
@Skyemugen
(set /p ... sollte das irgendwo zum Tragen kommen?)
Ja - so wie gleich oberhalb gezeigt. das .zip ist weg und nur die extrahierte Datei (mit dem Namen aus Zeile eins der version.txt) ist im Ordner %Bak% ...
Dort sollte aber nicht die extrahierte "version.txt", sondern eben die .zip-Datei gelandet sein (mittlerweile getestet ist sie das bei mir auch).Grüße
bastla
Zitat von @bastla:
Dort sollte aber nicht die extrahierte "version.txt", sondern eben die .zip-Datei gelandet sein (mittlerweile getestet
ist sie das bei mir auch).
Dort sollte aber nicht die extrahierte "version.txt", sondern eben die .zip-Datei gelandet sein (mittlerweile getestet
ist sie das bei mir auch).
Aloha bastla,
tja nun, was soll ich sagen 4. Test, diesmal @home (Win 7 statt XP wie auf Arbeit, macht aber keinen Unterschied)
Szenario:
- update.zip wie gehabt mit enthaltener version.txt (in Zeile eins stehtt 27.1.3b
- .cmd-Datei liegt im e:\ (zip dort wo sie nach Pfad hingehört, nur e:\... statt d:\...)
- Datei wird ausgeführt (Ordnerstruktur bereits vorhanden) ...
Resultat:
- update.zip ist weg
- im Ordner %Bak% (also bei mir: E:\test\backup_updates\) liegt jetzt eine 27.1.3b (3B-Datei) ...
Bin ich heute so neben der Spur oder mögen mich die Fenster heute nicht?
greetz André
Hallo Skyemugen!
Eigentlich sollte (lt Beschreibung des TO: "update-1.2.3.4.zip") in der "version.txt" zumindest
stehen - deswegen auch mein Hinweis auf einen gültigen Dateinamen.
Wenn Du dem Namen Deiner Datei im Ordner %Bak% noch ein ".zip" anfügst, solltest Du sie auch wie gewohnt öffnen können und darin die "version.txt" finden - schließlich ist es ja die zwar verschobene und umbenannte, aber originale "update.zip" ...
Wenn dem auch bei Dir so ist, hätten wir den Status (Zitat Biber) "works as designed" erreicht. ;-.)
Grüße
bastla
Eigentlich sollte (lt Beschreibung des TO: "update-1.2.3.4.zip") in der "version.txt" zumindest
27.1.3b.zip
Wenn Du dem Namen Deiner Datei im Ordner %Bak% noch ein ".zip" anfügst, solltest Du sie auch wie gewohnt öffnen können und darin die "version.txt" finden - schließlich ist es ja die zwar verschobene und umbenannte, aber originale "update.zip" ...
Wenn dem auch bei Dir so ist, hätten wir den Status (Zitat Biber) "works as designed" erreicht. ;-.)
Grüße
bastla
Hallo Skyemugen!
Grüße
bastla
wozu auch immer das Ding jetzt .zip heissen muss, wenn nix drin ist
Dass nix drin wäre ist aber nicht der Soll-Zustand - eigentlich müsste der gesamte Inhalt (und wenn's nur eine "version.txt" ist) noch vorhanden sein, da es sich ja um die Ausgangs-ZIP-Datei handelt (jetzt eben mit neuem Namen an neuem Ort).Grüße
bastla
Aloha,
hm ne war mal wieder ein Freitagsfehler von mir ^.^ hab einfach umbenannt in .zip aber ist nicht höhö - hab's nochmal nach TE-Standard getestet, haut schon hin je näher das WE rückt, desto mehr ist mein brain im Energiesparmodus
greetz André
ach herrje so viele postings für nichts ... der reinste spam schon fast - sollte mal wer aufräumen => fusen
edit:
Stand das schon den ganzen Tag da? ... au weia, da hab ich schon Kontaktlinsen drin ...
hm ne war mal wieder ein Freitagsfehler von mir ^.^ hab einfach umbenannt in .zip aber ist nicht höhö - hab's nochmal nach TE-Standard getestet, haut schon hin je näher das WE rückt, desto mehr ist mein brain im Energiesparmodus
greetz André
ach herrje so viele postings für nichts ... der reinste spam schon fast - sollte mal wer aufräumen => fusen
edit:
Die Datei version.txt innerhalb des Archives (update.zip) enthalt folgenden text "update-1.2.3.4.zip".
Stand das schon den ganzen Tag da? ... au weia, da hab ich schon Kontaktlinsen drin ...