In einer Batch per date command auf aktuelles Datum stellen?
Hallo,
ich würde gerne ein kleines batch Skript schreiben, wobei die Uhrzeit zuerst per date command auf ein spezifisches Datum gesetzt werden soll (z.B. 01.01.2010), was ja problemlos machbar ist. Allerdings sollte es später das Datum wieder auf den aktuellen Tag stellen. Da dieser halt variiert, bräuchte ich ein bisschen Hilfe. Wäre es evtl. möglich vor der ersten Datumsänderung das aktuelle Datum als Variable zu setzen und später zu benutzen um es wieder zurückzustellen?
Vielen lieben Dank!
2 Antworten
Es wäre besser sich das aktuelle Datum per NTP zu holen.
Unter Windows geht das per:
w32tm /resync
Starte den Programmaufruf mit
start "beliebiger Name" eigentlicherAufruf
wichtig ist, dass hier im 1. Parameter ein String als Name übergeben wird. Der kann auch leer sein. ("")
Alles, was mit dem Befehl "Start" aufgerufen wird, wird im Skriptablauf nicht abgewartet.
Genau so solltest du es machen: Das aktuelle Datum in einer Variablen "merken" und später dort wieder auslesen.
Für dein Script ist es aber entscheidend, in welcher Umgebung du arbeitest. Unter Windows sieht das ganz anders aus, als unter Linux oder MacOS
Skript wäre eine batch unter Win10. Der Tipp von ZaoDaDong funktioniert allerdings perfekt, also werde ich so fahren. Danke dir aufjedenfall!
Was ist, wenn das Skript um 23:59 startet und am nächsten Tag um 00:01 endet? Dann ist das Datum um 1 Tag verstellt.
Wenn das Script über Mitternacht läuft ist das kein Problem, denn es "merkt" sich ja den Starttermin. Wenn es am nächsten Tag endet, hat man trotzdem das korrekte Datum vom Startmoment.
Wenn du willst, kannst du aber auch das Datum (Uhrzeit) der Fertigstellung nutzen, indem du ein temporäres Verzeichnis erstellst, das du nach Fertigstellung der Aufgabe mit den korrekten Daten umbenennst.
Darf ich dir hier vielleicht gleich noch eine Frage stellen? Wenn ich das Programm über die cmd starten lasse, dann wartet er mit allen weiteren Befehlen solange bis das Programm geschlossen wird. Was könnte ich denn machen, wenn ich wollte, dass das Skript weiterläuft, während das Programm noch läuft?