Umbennenen einer Datei...nicht so einfach wie man denkt - oder ich bin blöd
Hallo Miteinander!
Ich habe ein kleines Problem!
Situation:
In einem Ordner befindet sich eine Datei Namens be20070806.xls (heutiges datum), diese soll per batch script autoamtisch nach wbe20070806.xls umbennent werden.
Versuch 1:
einfach nur:
rename be*.xls wbe*.xls
resultat: beim 2 Wort FEHLT immer ein Zeichen im Namen ( wenn mans so eingibt das 2) und ausserdme zu ungenau, da es mehrer Dateien haben könnte die mit be anfangne.
Versuch 2:
echo %date%. >>datumwbe.txt
for /f "delims=. tokens=1-3" %i in (datumwbe.txt) do (set var1=%i& set var2=%j& set var3=%k)
copy "be%var3%%var2%%var1%.xls" "wbe%var3%%var2%%var1%.xls"
del %date%
FUNKTIONIERT mit Einschränkung!
Erklärung:
zuerst wird eine datei erstellt in der das Datum steht (mit einem . hintendran)
dann wird die datei ausgelsen und der string immer beim . "gespalten" und den teil in eine variable gespeichert (der . hinter dem datum ist da, weil es sonst bei der var3 immer noch einen ABSTAND hatte...)
dann wird die alte Datei (die nun eindeutig identifizierbar ist) kopiert zu der wbe datei... funktioniert alles
ABER NUR solange ich in die befehlszeile gehe (also ins cmd) in das verzeichnis wechsle wo die dateien sind und dann zeile für zeile eingebe...
tu ich aber das kleine skript in eine batch datei (ich habs auch schon mit expliziten pfaden versucht) so funkioniert es nicht, die erste zeile geht zwar noch, aber bei der zeile mit for bricht das skript ab.... keine anung warum
diese meldung kommt:
(im batch.bat steth genau der obenstehende skript drin)
C:\ordner >
batch.bat
C:\ordner >
echo 08.06.2007. 1>>datumwbe.txt
i was unexpected at this time.
C:\ordner >
for /f "delims=. tokens=1-3" i& set var2=k)
C:\ordner >
kann mir wer helfen?
Vielen Dank schon mal
Ich habe ein kleines Problem!
Situation:
In einem Ordner befindet sich eine Datei Namens be20070806.xls (heutiges datum), diese soll per batch script autoamtisch nach wbe20070806.xls umbennent werden.
Versuch 1:
einfach nur:
rename be*.xls wbe*.xls
resultat: beim 2 Wort FEHLT immer ein Zeichen im Namen ( wenn mans so eingibt das 2) und ausserdme zu ungenau, da es mehrer Dateien haben könnte die mit be anfangne.
Versuch 2:
echo %date%. >>datumwbe.txt
for /f "delims=. tokens=1-3" %i in (datumwbe.txt) do (set var1=%i& set var2=%j& set var3=%k)
copy "be%var3%%var2%%var1%.xls" "wbe%var3%%var2%%var1%.xls"
del %date%
FUNKTIONIERT mit Einschränkung!
Erklärung:
zuerst wird eine datei erstellt in der das Datum steht (mit einem . hintendran)
dann wird die datei ausgelsen und der string immer beim . "gespalten" und den teil in eine variable gespeichert (der . hinter dem datum ist da, weil es sonst bei der var3 immer noch einen ABSTAND hatte...)
dann wird die alte Datei (die nun eindeutig identifizierbar ist) kopiert zu der wbe datei... funktioniert alles
ABER NUR solange ich in die befehlszeile gehe (also ins cmd) in das verzeichnis wechsle wo die dateien sind und dann zeile für zeile eingebe...
tu ich aber das kleine skript in eine batch datei (ich habs auch schon mit expliziten pfaden versucht) so funkioniert es nicht, die erste zeile geht zwar noch, aber bei der zeile mit for bricht das skript ab.... keine anung warum
diese meldung kommt:
(im batch.bat steth genau der obenstehende skript drin)
C:\ordner >
batch.bat
C:\ordner >
echo 08.06.2007. 1>>datumwbe.txt
i was unexpected at this time.
C:\ordner >
for /f "delims=. tokens=1-3" i& set var2=k)
C:\ordner >
kann mir wer helfen?
Vielen Dank schon mal
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Nov 30, 2011 um 18:14:33 Uhr
Umbennenen einer Datei...
Auch dieser Beitrag war ein rgc-Hochtreiber....Content-Key: 60883
Url: https://administrator.de/contentid/60883
Printed on: April 23, 2024 at 21:04 o'clock
4 Comments
Latest comment
Hi ihr beiden,
also es gibt einen kl. aber feinen Unterschied: Wenn du das Ganze am CMD - Prompt (Eingabeaufforderung) eingibst, brauchst du nur "%". Da du wahrscheinlich das Ganze in einen Batch packst (früher oder später), brauchst du "%%".
Quelle: for /?
Warum das so ist, keine Idee. Ich habe es auch legendlich aus der Hilfe herausgelesen. Aber vielleicht haben unsere Experten eine Idee.
Gruß
Dani
also es gibt einen kl. aber feinen Unterschied: Wenn du das Ganze am CMD - Prompt (Eingabeaufforderung) eingibst, brauchst du nur "%". Da du wahrscheinlich das Ganze in einen Batch packst (früher oder später), brauchst du "%%".
Quelle: for /?
Warum das so ist, keine Idee. Ich habe es auch legendlich aus der Hilfe herausgelesen. Aber vielleicht haben unsere Experten eine Idee.
Gruß
Dani