Variable date in cmd
Anfängerfrage cmd
Hallo, mein Name ist Christine.
Ich habe ein kleines Batchprogramm für die cmd (Windows XP SP2) geschrieben, welches meine Ordner auf D:\ auf eine USB-PLatte sichert.
Es werden bestimmte Order in das Verzeichnis Z:\backups\%date%-ordner kopiert.
Leider ergibt das dann Ordnernamen folgender Struktur: 12.03.2007-ordner. Ich würde aber gerne folgende Struktur haben: 2007-03-12-ordner. Kann man irgendwo in Windows das Format für %date% einstellen oder durch einen Befehl in der cmd umformatieren?
Besten Daynk im Voraus, falls mir jemand antwortet.
Lg Christine
Hallo, mein Name ist Christine.
Ich habe ein kleines Batchprogramm für die cmd (Windows XP SP2) geschrieben, welches meine Ordner auf D:\ auf eine USB-PLatte sichert.
Es werden bestimmte Order in das Verzeichnis Z:\backups\%date%-ordner kopiert.
Leider ergibt das dann Ordnernamen folgender Struktur: 12.03.2007-ordner. Ich würde aber gerne folgende Struktur haben: 2007-03-12-ordner. Kann man irgendwo in Windows das Format für %date% einstellen oder durch einen Befehl in der cmd umformatieren?
Besten Daynk im Voraus, falls mir jemand antwortet.
Lg Christine
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61495
Url: https://administrator.de/contentid/61495
Ausgedruckt am: 20.11.2024 um 00:11 Uhr
5 Kommentare
Neuester Kommentar
Moin Grisu-Newbie,
willkommen im Forum.
Fussnote zu Danis Lösung:
Du kannst es in der FOR /F-Klammer noch etwas vereinfachen.
... funktioniert allerdings nur, wenn Du genau "weißt", dass das Datumsformat auf allen Rechnern, auf denen Dein Batch läuft das Format tt.mm.jjjj ist.
Für etwas robusteren Umgang mit "Datums- und Zeitvariablen im Batch" siehe das gleichnamige Tutorial dazu hier im Bereich Batch & Shell (siehe unten unter Beiträge im gleichen Bereich).
Grüße
Biber
willkommen im Forum.
Fussnote zu Danis Lösung:
Du kannst es in der FOR /F-Klammer noch etwas vereinfachen.
..
for /f "delims=. tokens=1-3" %%a in (%date%) do set datum=%%c-%%b-%%a
..
... funktioniert allerdings nur, wenn Du genau "weißt", dass das Datumsformat auf allen Rechnern, auf denen Dein Batch läuft das Format tt.mm.jjjj ist.
Für etwas robusteren Umgang mit "Datums- und Zeitvariablen im Batch" siehe das gleichnamige Tutorial dazu hier im Bereich Batch & Shell (siehe unten unter Beiträge im gleichen Bereich).
Grüße
Biber
Moin Grisu-Newbie,
nein nein, wir haben Dich schon richtig verstanden...
Nochmal ausführlich:
Änderung bei Deinem Schnipsel:
Solltest Du aus welchen Gründen auch immer auf den Variablennamen %date% bestehen, dann unbedingt die Option/die Anweisung "Setlocal" verwenden, damit diese Änderung auch nur in Deinem Batch wirkt und keine Seiteneffekte auftreten.
Grüße
Biber
nein nein, wir haben Dich schon richtig verstanden...
Nochmal ausführlich:
- Nein, Du kannst das angezeigte Systemdatum nicht ohne Nebeneffekte in Deinem Wunschformat einstellen. Nicht die globale Variable %date% formatieren.
- Aber: Du kannst ausweichen auf eine selbst definierte Variable namens %datum% oder %meindatum% oder im Extremfall auch tatsächlich %date% (letzteres wäre ganz äh-bäh, das tut man/frau nicht!)
Änderung bei Deinem Schnipsel:
For /f ... ...DO Set Datum=.....(DeinFormat)
REM md %date% ------->so nicht
md %Datum% <i> --------->so schon</i>
Solltest Du aus welchen Gründen auch immer auf den Variablennamen %date% bestehen, dann unbedingt die Option/die Anweisung "Setlocal" verwenden, damit diese Änderung auch nur in Deinem Batch wirkt und keine Seiteneffekte auftreten.
@echo off <b> & setlocal</b>
REM "not recommended" would be my further hint...
for /f "delims=. tokens=1-3" %%a in (%date%) do set <b>date</b>=c-%%b-%%a
echo %date%
md %date%
pause
Biber