[robocopy] Verzeichnis mit aktuellen Datum erstellen

PakMan

Ensign
Registriert
März 2006
Beiträge
184
Hallo Community,
beim Erzeugen von Dateisicherungen mittels robocopy, möchte ich gerne ein Zielverzeichnis mit aktuellen Datum im Format YYYYMMDD erzeugen. Da ich ein absoluter Programmier- und Scriptsprachen-Noob bin, habe ich mich einer Google-Suche bemüht und die folgenden Vorschläge gefunden:
  1. https://serverfault.com/questions/294391/specifying-date-in-robocopy-destination-folder
  2. https://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyyy-format/
  3. https://community.spiceworks.com/to...o-use-robocopy-file-with-date-in-filename-end
Leider ist es mir nicht gelungen diese Scripts erfolgreich umzusetzen. Wenn ich beispielsweise die unteren Zeilen (Vorschlag aus dem ersten Link) in eine Batch-file kopiere, erhalte ich nach Ausführung (als Administrator) dieser das Zielverzeichnis E:\_BACKUP ohne Datum. Das gleiche Resultat erhalte ich auch beim Vorschlag aus dem dritten Link. Beim zweiten Link lief das Script erst gar nicht. Könnt ihr mir hier vielleicht weiterhelfen? Bin Windows 10 Nutzer.

Vielen Dank!

@Echo off
FOR /F "tokens=2-4 delims=/ " %%a in ('echo %date%') DO SET datevar=%%c%%b%%a
robocopy "D:\Eigene Dateien\" "E:\%datevar%_BACKUP" /E /R:1 /W:1 /A-:SH /log+:E:\logfile.log /NP /TEE
 
Du hast das aktuelle Datum in %DATE% liegen. Mit %VAR:~0,5% kannst du nen Substring von 0 - 5 herausziehen. Du kommst also mit %DATE:~6,4%%DATE:~3,2%%DATE:~0,2% zu deinem Format.
 
Ich benutz immer folgendes "Konstrukt", um mir Datum und Uhrzeit in Variablen zu speichern:
Code:
:get time -----------------------------------------------------------
FOR /F "tokens=1-4 delims=:, " %%A IN ('time /T') DO (SET hh=%%A& SET mm=%%B)
SET ss=%TIME:~6,2%
SET ms=%TIME:~9,2%
SET Uhrzeit=%hh%~%mm%


:get date -----------------------------------------------------------
FOR /F "tokens=1-3 delims=/.- " %%A IN ("%date%") DO (SET TT=%%A&SET MM=%%B&SET JJJJ=%%C)
SET Datum=%JJJJ%-%MM%-%TT%
 
Ich danke euch. Mit dem Script von @T00L hats geklappt. Merci! :)
 
Andere Variante, die auch funktionieren sollte:

Code:
@Echo off
for /F "Tokens=1-4 Delims=/ " %i in ('date /t') do set dt=%date%
robocopy "D:\Eigene Dateien\" "E:\%date%_BACKUP" "*" /E /R:1 /W:1 /A-:SH /log+:E:\logfile.log /NP /TEE
 
Zurück
Oben