Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variable date in cmd

Frage Entwicklung Batch & Shell

Mitglied: Grisu-Newbie

Grisu-Newbie (Level 1) - Jetzt verbinden

15.06.2007, aktualisiert 16.06.2007, 32826 Aufrufe, 5 Kommentare

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
Mitglied: Dani
15.06.2007 um 22:15 Uhr
Hallo Christine,
also so müsste es gehen:
01.
@echo off 
02.
 
03.
for /f "delims=. tokens=1,2,3" %%a in ('echo %date%') do set datum=%%c-%%b-%%a 
04.
echo %datum% 
05.
 
06.
pause
Ungetesteter Schnipsel.


Gruß
Dani
Bitte warten ..
Mitglied: Biber
15.06.2007 um 22:30 Uhr
Moin Grisu-Newbie,

willkommen im Forum.
Fussnote zu Danis Lösung:
Du kannst es in der FOR /F-Klammer noch etwas vereinfachen.
01.
.. 
02.
for /f "delims=. tokens=1-3" %%a in (%date%) do set datum=%%c-%%b-%%a 
03.
..
... 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
Bitte warten ..
Mitglied: Grisu-Newbie
15.06.2007 um 23:14 Uhr
Danke euch beiden für die Tipps.

Ich fürchte, ich hjabe mich unklar ausgedrückt. Ich wollte eine Lösung, die mir bei der verwendung von md %date% einen Ordner dieser Struktur erzeugt: YYYY-MM-DD.

Beispiel:
@echo off

for /f "delims=. tokens=1,2,3" %%a in ('echo %date%') do set datum=%%c-%%b-%%a
echo %datum%
md %date%

pause
Sollte also so einen Ordner erzeugen: 2007-06-15. Es wird aber wie immer 15.06.2007 erzeugt.

Any further hints?

lg Christine
Bitte warten ..
Mitglied: Biber
15.06.2007 um 23:29 Uhr
Moin Grisu-Newbie,

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:
01.
For /f ... ...DO Set Datum=.....(DeinFormat) 
02.
 
03.
REM md %date% ------->so nicht 
04.
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.
01.
@echo off <b> & setlocal</b> 
02.
REM "not recommended" would be my further hint... 
03.
for /f "delims=. tokens=1-3" %%a in (%date%) do set <b>date</b>=c-%%b-%%a 
04.
echo %date% 
05.
md %date% 
06.
 
07.
pause
Grüße
Biber
Bitte warten ..
Mitglied: Grisu-Newbie
16.06.2007 um 08:06 Uhr
Es war meine Schuld, sorry. Ich hatte den Code nicht genau gelesen. Super, funkt!
Nein, ich bestehe nicht darauf, %date% zu verwenden.

Gruß Christine
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (27)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (19)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...