Comment puis-je faire en sorte que robocopy utilise un fichier journal contenant des espaces?


11

J'essaie la commande suivante:

robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"

Je reçois cette erreur:

ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"

EDIT # 1

Il s'avère que la commande ci-dessus était valide, j'avais une faute de frappe sur mon chemin. Si vous avez un chemin qui inclut des espaces, vous pouvez les fournir au commutateur robocopy / log comme ceci:/log:"c:\path to a file\robocopy.log"


Travaille pour moi. Montre-t-il peut-être une erreur plus détaillée en haut?
— Carko

Exécutez-vous cette commande dans le contexte d'un script plutôt que directement sur la ligne de commande. Peut-être que quelque chose d'autre ajoute une sorte d'évasion?
— Zoredache

Le message d'erreur suggère que les guillemets initiaux sont avant plutôt qu'après les deux points; êtes-vous sûr que la commande que vous tentiez d'exécuter est comme indiqué?
— Harry Johnston

Je suis tellement désolé, j'avais une faute de frappe sur le chemin. Majoritairement gêné. Merci pour l'aide rapide de tout le monde! Quelle est la procédure, dois-je supprimer cette question? Ou puis-je le reformuler et ajouter une réponse montrant que vous pouvez mettre des guillemets autour de l'argument pour / log changer de robocopy?
— slm

Aucune raison de supprimer @slm. Si l'un des commentaires ci-dessus vous a aidé à trouver le problème, demandez-leur de l'afficher comme réponse, puis marquez la réponse comme correcte. Si le problème était autre chose, écrivez votre propre réponse et marquez-la comme réponse pour que les futurs chercheurs sachent s'ils ont un problème similaire.
— music2myear

Réponses:


11

Si vous devez fournir un chemin qui inclut des espaces pour le commutateur robocopy / log, vous pouvez le faire comme ceci:

/log:"c:\path to logs files\some log file.txt"

J'obtiens une erreur non valide: paramètre # 11 "/ log". Je l'ai ajouté à la fin d'une commande qui fonctionnait autrement.
— Andrew S

Je ne travaille plus là où je prends en charge les fenêtres, je n'ai donc aucun moyen de tester cela.
— slm

Assurez-vous que le répertoire parent du fichier journal existe. Robocopy ne l'a pas créé et, malheureusement, se plaint du paramètre cmdline si le répertoire n'existe pas.
— mojo

4

Il existe quatre façons de se connecter en tant que documentation Powershell

/log:<LogFile> : Écrit la sortie d'état dans le fichier journal (remplace le fichier journal existant).

  • par exemple: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Écrit la sortie d'état dans le fichier journal (ajoute la sortie au fichier journal existant).

  • par exemple: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Écrit la sortie d'état dans le fichier journal sous forme de texte Unicode (remplace le fichier journal existant).

  • par exemple: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Écrit la sortie d'état dans le fichier journal sous forme de texte Unicode (ajoute la sortie au fichier journal existant).

  • par exemple: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Pour plus de détails https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx


Je recommanderai également d'ajouter un /teecommutateur car cela produit également une sortie de ligne de commande et permet à l'utilisateur de voir également la progression de la copie des fichiers en ligne de commande.
— vibs2006

1

Cela se produit lorsque vous avez besoin des privilèges d'administrateur / ou pop pour créer un fichier dans ce répertoire

Essayez donc d'avoir un répertoire log / temp et essayez d'ajouter un fichier journal dans ce répertoire

$ mkdir C:\log

par exemple:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"

0

Si le chemin d'accès au fichier journal contient des espaces ou d'autres délimiteurs de script, veuillez l'inclure dans des guillemets tels que votre EDIT # 1 et @slm le suggèrent. Mais notez également l'utilisation de caractères d'échappement comme décrit dans cette documentation sur les scripts Batch .


J'ai le même problème après une migration Win 10 assez désastreuse et indésirable.
— Marc
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.