Expanda correctamente los nombres de los archivos copiados usando XCOPY

Expanda correctamente los nombres de los archivos copiados usando XCOPY

Creé un script por lotes configurado para copiar todos .cpplos archivos desde una ubicación que configuré. Puede copiar los archivosyconserva la estructura de carpetas, pero no expande correctamente los nombres de los archivos copiados. También tengo una versión anterior que puede hacer esto, pero también copiatododesde la carpeta de destino a la nueva carpeta. El objetivo de la nueva versión essolocopiar un tipo de archivo específico.

Aquí está la sintaxis XCOPYque expande correctamente los nombres de los archivos, pero copia todo el contenido de la carpeta:

ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" /S /Q /N

Aquí está la nueva sintaxis que no logra expandir los nombres de archivos de los tipos de archivos copiados:

ECHO F | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects\*.cpp" "Backup\Projects\" /S /Q /N

Aquí hay un ejemplo de los nombres de archivos abreviados/no expandidos que obtengo en el directorio de destino:

WRNM~1.CPP.

No sé si el comando de anulación del mensaje cambia( /S /Q /N)están afectando esto, pero necesito que anulen las indicaciones debido a la gran cantidad de archivos que se están copiando. También me gustaría señalar que a pesar de copiar archivos con la sintaxis más nueva, aún puedo XCOPYcopiarlos incluso si defino el destino como un directorio usando el Dmodificador.

Respuesta1

Encontré la solución que cumple con todos mis requisitos usando ROBOCOPYen su lugar:

ROBOCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" *.cpp /S

Puede agregar el /Einterruptor para copiar también carpetas vacías si es necesario. Intenté esto antes, pero extravié la definición del tipo de archivo.

Más ROBOCOPYdocumentación deSS64:

https://ss64.com/nt/robocopy.html

Respuesta2

xcopiar en documentos de Microsoft

Crea copias utilizando los nombres cortos de archivos o directorios NTFS. /n es necesario cuando copia archivos o directorios de un volumen NTFS a un volumen FAT o cuando se requiere la convención de nomenclatura del sistema de archivos FAT (es decir, 8,3 caracteres) en el sistema de archivos de destino. El sistema de archivos de destino puede ser FAT o NTFS.

Su versión anterior de xcopy no se manejó /ncorrectamente. Consulte xcopy /?con cada uno para comprobar cada vez que la opción cambió su significado.

información relacionada