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"

slm
la source
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"
slm
la source
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

Nayana Adassuriya
la source
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"
jaismeensandhu
la source
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 .

Alain
la source
J'ai le même problème après une migration Win 10 assez désastreuse et indésirable.
Marc