radonex
Goto Top

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 face-sad

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
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

Member: miniversum
miniversum Jun 08, 2007 at 14:02:13 (UTC)
Goto Top
versuchs mal so:
for /F %%a in ('dir /b /a-D be????????.xls') do copy %%a w%%a

miniversum
Member: RadonEx
RadonEx Jun 08, 2007 at 14:07:56 (UTC)
Goto Top
danke...hat funktioneirt (habs jez nur auf kommando zeile probiert) jedoch nur wenn ich aus allen %% ein % gemacht habe ?? warum das?
Member: Dani
Dani Jun 08, 2007 at 14:40:43 (UTC)
Goto Top
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
Member: RadonEx
RadonEx Jun 08, 2007 at 16:10:25 (UTC)
Goto Top
Achso!

Wenn das so ist erklärt es auch, warum mein Script nicht funktionirt hat, werde das nacher gleihc mal ändern und sehen ob es geht und dann den post editieren!

EDIT:

Ok hat super funktioniert....jaja wie immer lags am lesen, wenn man nur mal die Hilfe lesen würde *walllbash* ;)

Danke an euch beide!