
Intenté especificar un /EXCLUDE
nombre de archivo con espacios xcopy
, pero siempre falla. ¿Cómo puedo especificar dicha ruta xcopy
sin copiar los /EXCLUDE
archivos en el directorio actual y sin utilizar el antiguo ~1
truco de nombre corto de DOS?
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>dir source
Volume in drive C is OS
Volume Serial Number is 7C4E-86D4
Directory of c:\Users\binki\Documents\repos\xcopy_exclude_spacey\source
2013-01-03 16:39 <DIR> .
2013-01-03 16:39 <DIR> ..
2013-01-03 16:39 0 a
2013-01-03 16:39 0 a b c
2013-01-03 16:39 0 b
2013-01-03 16:39 0 c
4 File(s) 0 bytes
2 Dir(s) 117,279,027,200 bytes free
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>type "various exclude rules\a"
a
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E /EXCLUDE:"various exclude rules\a" source dest
Can't read file: "various exclude rules\a"
0 File(s) copied
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E "/EXCLUDE:various exclude rules\a" source dest
Invalid number of parameters
Ninguna de las formas de citar el nombre del archivo que funcionaría bien en un shell decente funciona para mí con xcopy. Por alguna razón, "/EXCLUDE:<filename>"
la sintaxis impide que se reconozca la opción en sí. La otra sintaxis, "/EXCLUDE:"<filename>"
, hace que se imprima el mensaje Can't read file: "<filename>"
, lo que muestra que la opción se está analizando correctamente: las comillas dobles impiden que el argumento se divida en varias partes. Sin embargo, este mensaje sugiere que xcopy no elimina correctamente las comillas dobles del nombre del archivo antes de intentar abrir el archivo.
A partir de esto, parece que si el primer componente de la ruta que especifico /EXCLUDE
comienza con a "
y mi /EXCLUDE
nombre de archivo termina en "
, podría hacer referencia a ese archivo desde /EXCLUDE
la opción xcopy con éxito. Pero Windows se niega a dejarme colocar el "
carácter en mi nombre de archivo.
Entonces, ¿cómo uso xcopy en un mundo moderno con nombres de archivos con espacios?