Enregistrement du journal de la commande robocopy pour un daté du fichier journal
Je suis en exécutant la commande suivante pour sauvegarder un dossier à une distance d'une part mappé en tant que lecteur:
REM Backup local documents to Q drive, only add new files does not remove old
REM files
echo --------------------------------------------------------------------------
echo Running backup to Q batch, only adding new files
echo --------------------------------------------------------------------------
robocopy C:\WhatIWantToCopy^
Q:\ /256 /V /S /IPG:125^
/XF *.log /tee /ETA /XC /XN /XO^
/XD C:\SomeRubbish^
/log:C:\MyStuff\logs\robo_%_DATETIME.log
La commande s'exécute, mais la ligne:
/log:C:\MyStuff\logs\robo_%_DATETIME.log
ne semble pas être la génération de la nécessaire fichier journal. Je voudrais que le fichier journal de structure robo_16-12-2015.journal, reflétant la date actuelle.
- les variables sont utilisées avec un signe de pourcentage à l'avant ET à la fin:
%_datetime%
(en supposant qu'il est défini)
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin pour construire la date dans le format que vous voulez. Cette biopsie doit permettre:
Sur ma machine, ce sorties:
Si vous souhaitez inclure une Heure-Minute d'horodatage, juste le mettre à jour en conséquence l'analyse de la
%TIME%
variable:%TIME%
sont construits dans des variables. Je suis d'analyse utilisant laSET
sous-chaîne de la syntaxe que vous pouvez voir ici:SET /?
J'ai résolu ce problème comme suit: mon serveur renvoie ceci:
Maintenant, je veux utiliser un fichier journal avec Robocopy qui a une "Année-Mois-Jour-Heure-Minute-Seconde" partie du nom de fichier. Le défi ici est de se débarrasser de l' /et : caractères, car ils ne sont pas autorisés dans les noms de fichier.
La solution: créer un fichier batch, par exemple setdtvar.cmd, avec ça:
Sur mon serveur, la DTVAR variable renvoie la date et l'heure dans le format que j'ai besoin, par exemple:
Pour activer cette fonction pour Robocopy: Chaque lot de fichier qui contient robocopy commandes appelle d'abord la setdtvar.fichier cmd (appel setdtvar.cmd dans la première ligne). Ceci définit la DTVAR variable dans le contexte du processus qui exécute le fichier de commandes. Puis, dans la Robocopy fichier journal de commande, j'utilise %DTVAR% dans le nom de fichier du fichier de log.
Pour répondre à la question initiale, vous pouvez utiliser le code suivant. Ce code également en charge les anciens systèmes ont un jour répertoriées dans le
DATE
variable.Juste pour ajouter une approche plus simple qui m'ont bien servi au fil des ans et évite les collisions de noms. Ci-dessous est une capture-il que j'ai dans mon fichier de script que j'utilise robocopy script de migration. Je l'utilise pour générer de nouveaux noms de fichier de journal chaque fois qu'il est exécuté. Le nom de ce script que j'ai est appelé "la migration.chauve-souris". Comme vous pouvez le voir ce code utilise le nom du script, puis cracher un beau journal de nom de fichier à utiliser.
Puis voir à quoi ça ressemble...
Doit retourner quelque chose comme...