https://znil.net/index.php?title=Windows:Batch_/_DOS-Box:_aktuelles_Datum_und_Uhrzeit_f%C3%BCr_Datei-_oder_Verzeichnisnamen_verwenden&feed=atom&action=historyWindows:Batch / DOS-Box: aktuelles Datum und Uhrzeit für Datei- oder Verzeichnisnamen verwenden - Versionsgeschichte2024-03-28T10:45:32ZVersionsgeschichte dieser Seite in znilwikiMediaWiki 1.39.6https://znil.net/index.php?title=Windows:Batch_/_DOS-Box:_aktuelles_Datum_und_Uhrzeit_f%C3%BCr_Datei-_oder_Verzeichnisnamen_verwenden&diff=9475&oldid=prevBLinz2: Textersetzung - „<comments>“ durch „<comments />“2017-08-06T18:52:05Z<p>Textersetzung - „<comments>“ durch „<comments />“</p>
<p><b>Neue Seite</b></p><div><br />
[[Kategorie:Batch]]<br />
Zum Beispiel bei Dateisicherungen per Skript / Batch ist es praktisch, das aktuelle Datum und Uhrzeit in Batch-Dateien verwenden zu können.<br><br />
Auch bei Ausgaben in Log-Dateien macht sich das gut.<br><br />
<br><br />
----<br />
==Simpel-Ausgabe==<br />
Die 08/15 Ausgabe besteht aus dem Inhalt der beiden Umgebungsvariablen<br />
%TIME%<br />
%DATE%<br />
Per '''<code>echo</code>''' in einer Eingabeaufforderung sieht das so aus:<br><br />
[[Datei:Batch-DatumundUhrzeit-001.png]]<br><br />
<br><br />
Wie Ihr seht habe ich auch gleich einen Ordner mit dem aktuellen Datum angelegt.<br><br />
Leider geht das mit der Uhrzeit schon nicht mehr - da sind Doppelpunkte drin, die darf es in Dateinamen nicht geben.<br><br />
<br><br />
Aber auch dafür gibt es eine Lösung - siehe nächsten Abschnitt:<br />
<br><br />
<br><br />
----<br />
==Getrennte Ausgabe von Tag, Monat, Jahr, Stunde, Minute und Sekunde==<br />
Was leider in der aktuellen Hilfe praktisch nicht mehr zu finden ist: Windows kann die Ausgabe von Umgebungsvariablen Formatieren.<br><br />
Das können wir nutzen um die Ausgabe von '''<code>%TIME%</code>''' und '''<code>%DATE%</code>''' in ihre Einzelteile zu zerlegen:<br />
<br><br />
Jahr: %date:~-4%<br />
Monat: %date:~-7,2%<br />
Tag: %date:~-10,2%<br />
<br />
Stunden: %time:~-11,2%<br />
Minuten: %time:~-8,2%<br />
Sekunden: %time:~-5,2% <br />
Ein<br />
%date:~-4%-%date:~-7,2%-%date:~-10,2%---%time:~-11,2%-%time:~-8,2%-%time:~-5,2%<br />
gibt uns Datum und Uhrzeit in einer Verzeichnis- und Dateinamen kompatiblen Version aus - die dann schön nach Datum sortiert wird, mit<br />
mkdir %date:~-4%-%date:~-7,2%-%date:~-10,2%---%time:~-11,2%-%time:~-8,2%-%time:~-5,2%<br />
erstellen wir uns ein Verzeichnis damit:<br><br />
[[Datei:Batch-DatumundUhrzeit-002.png]]<br><br />
<br><br />
--[[Benutzer:BLinz|Bernhard Linz]] ([[Benutzer Diskussion:BLinz|Diskussion]]) 12:20, 11. Mai 2012 (CEST)<br />
<br><br />
----<br />
==Fehler durch Leerzeichen==<br />
Ich habe da gerade noch einen Fehler gefunden - die Uhrzeit oder das Datum ist bei den Zahlen von 1 bis 9 nur einstellig.<br><br />
Wir bekommen also ein<br />
echo ##%TIME%##<br />
## 9:45:35,88##<br />
und damit auch ein<br />
echo =>%time:~-11,2%-%time:~-8,2%-%time:~-5,2%<=<br />
## 9-45-35##<br />
Beim Datum ist es das selbe. Nun haben wir plötzlich Leerzeichen in den Dateinamen.<br><br />
'''Lösung1:''' Die Namen in der Batch in " " packen und damit die Leerzeichen übergeben<br><br />
'''Lösung2:''' Aus allen Leerzeichen hinterher 0 - machen:<br><br />
set TEST=%date:~-4%-%date:~-7,2%-%date:~-10,2%-%time:~-11,2%-%time:~-8,2%-%time:~-5,2%<br />
echo ##%TEST%##<br />
setlocal enabledelayedexpansion<br />
set TEST=!TEST:^ =0!<br />
setlocal disabledelayedexpansion<br />
echo ##%TEST%##<br />
Ausgabe:<br />
##2012-05-12- 1-47-00##<br />
##2012-05-12-01-47-00##<br />
er füllt die Leerzeichen mit der Zahl 0 !<br><br />
<br><br />
{{Hinweis| Das Umwandeln aller Leerzeichen in eine 0 funktioniert nur innerhalb einer Batch-Datei. Man kann es NICHT in der Eingabeaufforderung testen! Kopiert das Beispiel in eine Textdatei und speichert diese als .bat oder .cmd und ruf diese dann auf - dann geht es.}}<br><br />
<br />
--[[Benutzer:BLinz|Bernhard Linz]] ([[Benutzer Diskussion:BLinz|Diskussion]]) 01:48, 12. Mai 2012 (CEST)<br />
----<br />
==Kommentare==<br />
<comments /></div>BLinz2