Creé un script por lotes configurado para copiar todos .cpp
los 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 XCOPY
que 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 XCOPY
copiarlos incluso si defino el destino como un directorio usando el D
modificador.
Respuesta1
Encontré la solución que cumple con todos mis requisitos usando ROBOCOPY
en su lugar:
ROBOCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" *.cpp /S
Puede agregar el /E
interruptor para copiar también carpetas vacías si es necesario. Intenté esto antes, pero extravié la definición del tipo de archivo.
Más ROBOCOPY
documentación deSS64:
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ó /n
correctamente. Consulte xcopy /?
con cada uno para comprobar cada vez que la opción cambió su significado.