Ich habe eine Batch-Datei, die mit Taskplaner ausgeführt wird. Dieser Code-Schnipsel versagt:% Zeit% funktioniert, wenn Benutzer initiiert, aber nicht, wenn Aufgabe ausgelöst wird
Set mm=%DATE:~4,2%
Set dd=%DATE:~7,2%
Set yyyy=%DATE:~10,4%
set t=%TIME:~0,2%
mkdir L:\Weekly\%yyyy%%mm%%dd%%t%\Edge
Wenn ich die Aufgabe initiieren, wird dieses Verzeichnis erstellt:
L:\Weekly\2016063013\Edge
jedoch, wenn die Aufgabe über den geplanten Trigger ausgeführt wird, wird dieses Verzeichnis erstellt:
L:\Weekly\20160702
Ich habe es schwer, diesen Fehler zu debuggen. Ich brauche die Stunde, um zwischen Backups zu unterscheiden, die manuell nach einem Ereignis ausgelöst wurden, im Gegensatz zu den normalen nächtlichen/wöchentlichen automatisierten Routinen.
Sie bedeuten 'L: \ Weekly \ 20160702 \ Edge' richtig? Wann wurde die Aufgabe ausgeführt? 2. Juli? –
Wenn vor 10:00 Uhr ausgelöst wird, könnte in% time% ein Leerzeichen stehen. Schließen Sie den Pfad in mkdir in einem doppelten Anführungszeichen ein und/oder addieren Sie "t =% t: = 0%" – JosefZ
Die Verwendung von "date" und "time" ist ebenfalls länderabhängig. Für eine länderunabhängige Lösung verwenden Sie stattdessen "wmic". Siehe meine Antwort [Druckdatum in Windows cmd] (http://superuser.com/a/1045459) – DavidPostill