Estoy tratando de ejecutar un /MOVE
comando robocopy pero excluyo un par de subdirectorios especificados con la /XD
bandera.
robocopy ".\CurrentDir" ".\NewDir" /XD ".\CurrentDir\SubDir1" ".\CurrentDir\SubDir2" /E /MOVE
Desafortunadamente, ignora la /XD
opción y mueve todo. Si uso una ruta absoluta en todo, funciona bien, pero necesito que sea flexible. ¿Hay alguna manera de hacerlo funcionar con rutas relativas?
%CD%
variable de entorno. Ejemplo:robocopy ".\CurrentDir" ".\NewDir" /XD "%CD%\CurrentDir\SubDir1" "%CD%\CurrentDir\SubDir2" /E /MOVE
Respuestas:
Las carpetas especificadas
/XD
se refieren a carpetas (para excluir) que existen dentro de la carpeta de origen, por lo que solo debe especificar los nombres de carpeta que desea excluir, sin especificar una relación principal.es decir:
fuente
Lo siguiente puede ayudar: aborda directamente el problema de la ruta relativa, pero permite muchos directorios de exclusión y subdirectorios.
Si solo excluye carpetas de nivel superior, simplemente use el nombre de la carpeta, por ejemplo, APC. Sin embargo, si está haciendo una subcarpeta, necesita la ruta completa. La ruta debe coincidir completamente con la ruta de origen + ruta hacia la subcarpeta. Lo he probado de muchas maneras diferentes y esta es la única forma en que pude hacerlo funcionar. Este formato de archivo por lotes / cmd también permite espacios en la ruta o los nombres de archivo.
fuente