Supportnet / Forum / WindowsNT
Problem mit NT Script
Frage
Hallo allerseits,
ich möchte eine Datei umbenennen und in den Dateinamen die Uhrzeit integrieren. Hier mein Scriptaufruf:
for /f "tokens=1,2 delims=:" %%a in ('time/t') do set tim1=%%a tim2=%%b
Soweit geht das ja
Aber der Befehl
ren c:\temp\bla.txt bla_%tim1%_%tim2%.txt
führt zu einem Syntaxfehler.
ren c:\temp\bla.txt bla_%tim1%.txt
Führt ebenfalls zu einem Syntaxfehler.
Was ist falsch?
Antwort 1 von Roland
Hi,
dein Problem liegt wahrscheinlich nicht an der REN-Zeile sondern an der FOR-Zeile.
Ich habe mir die Variable tim1 mal ausgeben lassen
echo %tim1%
der Inhalt war tim1="15 tim2=56"
Somit ergibt sich für den REN-Befehl ein ungültiger Dateiname (Leerzeichen sind nicht zulässig).
cya
Roland
dein Problem liegt wahrscheinlich nicht an der REN-Zeile sondern an der FOR-Zeile.
Ich habe mir die Variable tim1 mal ausgeben lassen
echo %tim1%
der Inhalt war tim1="15 tim2=56"
Somit ergibt sich für den REN-Befehl ein ungültiger Dateiname (Leerzeichen sind nicht zulässig).
cya
Roland
Antwort 2 von shrike
Oh, da geht's ja in die (Un)Tiefen der Befehle ;-)
Aber so geht's erstmal nicht... Schau dir die entstandene Umgebungsvariable (ja, nur eine wurde erstellt) an. Und dann muß man wegen der Leerzeichen aufpassen.
Mach's anders:
for /f "tokens=1,2 delims=: " %%a in ('time/t') do (set tim1=%%a) & (set tim2=%%b)
Bei delims ist nach Doppelpunkt ein Leerzeichen und die Klammern nicht vergessen.
Dann sollte es funktionieren.
shrike
Aber so geht's erstmal nicht... Schau dir die entstandene Umgebungsvariable (ja, nur eine wurde erstellt) an. Und dann muß man wegen der Leerzeichen aufpassen.
Mach's anders:
for /f "tokens=1,2 delims=: " %%a in ('time/t') do (set tim1=%%a) & (set tim2=%%b)
Bei delims ist nach Doppelpunkt ein Leerzeichen und die Klammern nicht vergessen.
Dann sollte es funktionieren.
shrike
Antwort 3 von shrike
Tip:
Die &-Verknüpfung zweier Befehle kannst du bestimmt noch woanders gebrauchen ;-)
shrike
Die &-Verknüpfung zweier Befehle kannst du bestimmt noch woanders gebrauchen ;-)
shrike
Antwort 4 von shrike
Noch eine Möglichkeit wäre (wenn du Stunden und Minuten nicht unbedingt einzeln brauchst) nur EINE Variable zu erstellen:
for /f "tokens=1,2 delims=: " %%x in ('time /t') do set ZEIT=%%x_%%y
Dann geht "ren bla.txt bla_%ZEIT%.txt" und es kommt aufs Gleiche raus (bla_16_18.txt).
Naja, kannst ja experimentieren...
shrike
for /f "tokens=1,2 delims=: " %%x in ('time /t') do set ZEIT=%%x_%%y
Dann geht "ren bla.txt bla_%ZEIT%.txt" und es kommt aufs Gleiche raus (bla_16_18.txt).
Naja, kannst ja experimentieren...
shrike
Antwort 5 von JOJOLINO
Hallo shrike,
super hat geklappt, vielen Dank!
Habe mich für die Variante mit nur einer Variablen entschieden!
JOJOLINO
super hat geklappt, vielen Dank!
Habe mich für die Variante mit nur einer Variablen entschieden!
JOJOLINO

