¿Cómo obtengo robocopy para usar un archivo de registro que incluye espacios?

11

Estoy intentando el siguiente comando:

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"

Recibo este error:

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

EDITAR # 1

Resulta que el comando anterior era válido, tenía un error tipográfico en mi camino. Si tiene una ruta que incluye espacios, puede proporcionarlos al interruptor de robocopy / log de la siguiente manera:/log:"c:\path to a file\robocopy.log"

slm
fuente
Funciona para mi. ¿Quizás muestra un error más detallado en la parte superior?
Carko
¿Está ejecutando ese comando en el contexto de un script en lugar de hacerlo directamente en la línea de comando? ¿Quizás algo más está agregando algún tipo de escape?
Zoredache
El mensaje de error sugiere que las comillas iniciales son antes y no después de los dos puntos; ¿estás seguro de que el comando que estabas intentando ejecutar es el que se muestra?
Harry Johnston
Lo siento mucho, tuve un error tipográfico en el camino. Mayormente avergonzado. ¡Gracias por la pronta ayuda de todos! ¿Cuál es el procedimiento? ¿Debo eliminar esta pregunta? ¿O puedo reformularlo y agregar una respuesta que muestre que puede poner comillas alrededor del argumento para / log switch de robocopy?
slm
No hay razón para eliminar @slm. Si uno de los comentarios anteriores lo ayudó a encontrar el problema, pídales que lo publiquen como respuesta y luego marque la respuesta correcta. Si el problema era algo completamente diferente, escriba su propia respuesta y márquela como la respuesta para que los futuros buscadores sepan si tienen un problema similar.
music2myear

Respuestas:

11

Si necesita proporcionar una ruta que incluya espacios para el interruptor / registro de robocopy, puede hacerlo así:

/log:"c:\path to logs files\some log file.txt"
slm
fuente
Me sale un error no válido: parámetro # 11 "/ log". Lo agregué al final de un comando que de otro modo funcionaría.
Andrew S
Ya no trabajo donde soporto Windows, así que no tengo forma de probar esto.
slm
Asegúrese de que exista el directorio principal del archivo de registro. Robocopy no lo creó y, lamentablemente, se queja del parámetro cmdline si el directorio no existe.
mojo
4

Hay cuatro formas de iniciar sesión como la documentación de Powershell

/log:<LogFile> : Escribe la salida de estado en el archivo de registro (sobrescribe el archivo de registro existente).

  • p.ej: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Escribe la salida de estado en el archivo de registro (agrega la salida al archivo de registro existente).

  • p.ej: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Escribe la salida de estado en el archivo de registro como texto Unicode (sobrescribe el archivo de registro existente).

  • p.ej: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Escribe la salida de estado en el archivo de registro como texto Unicode (agrega la salida al archivo de registro existente).

  • p.ej: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Para más detalles https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx

Nayana Adassuriya
fuente
También recomendaré agregar un /teeinterruptor, ya que eso también produce la salida de la línea de comandos y permite al usuario ver el progreso de la copia de archivos en la línea de comandos también.
vibs2006
1

Sucede cuando se necesitan privilegios de administrador / o pop para crear un archivo en ese directorio

Por lo tanto, intente tener un directorio log / temp e intente agregar el archivo log en ese directorio log

$ mkdir C:\log

p.ej:

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

Si la ruta al archivo de registro contiene espacios u otros delimitadores de secuencias de comandos, inclúyalo entre comillas como su EDIT # 1 y @slm sugiere. Pero también, tenga en cuenta el uso de caracteres de escape como se describe en esta documentación en las secuencias de comandos por lotes .

Alain
fuente
Tengo el mismo problema después de una migración Win 10 bastante desastrosa y no deseada.
Marc