Si está copiando archivos usando arrastrar y soltar o copiar / pegar, simplemente puede elegir la opción “Omitir este archivo” o “Omitir estos archivos” para no sobrescribir los archivos que ya existen en la carpeta de destino.
O, si está utilizando la línea de comando Copiar, puede responder N para omitir estos archivos que ya existen.
![]()
Pero, ¿cómo puedo hacer lo mismo a través de un archivo por lotes usando cualquier línea de comando de copia?
Hay dos formas de hacerlo.
Puede utilizar el SI declaración para copiar el archivo solo cuando el archivo no existe en el destino.
IF NOT EXIST "topathfilename" COPY "frompathfile" "topathfile"
Un amigo de Ahora, Glenn Reimche, compartió una forma mucho mejor de usar Copiar línea de comando sin la instrucción IF.
echo n | copy /-y "frompathfile" "topathfile"
![]()
Si necesita copiar una carpeta a otra ubicación pero no sobrescribe los archivos que ya existían en la nueva ubicación, esto es lo que puede hacer.
FOR %f in ("frompathfile*.*) DO IF NOT EXIST "topath%~nxf" COPY "frompathfile" "topathfile"
los % ~ nx en el comando es quitar la información de la carpeta de la variable %F por lo que solo obtiene el nombre del archivo como resultado.
O, en su lugar, use una alternativa de línea de comando de copia mucho más poderosa, es decir robocopia.
Puede usar los siguientes interruptores para omitir ciertos archivos.
/xc - exclude changed files /xn - exclude newer files /xo - exclude older files
Por ejemplo, para copiar todos los archivos de la carpeta A a la carpeta B, excluyendo todos los archivos que tienen la marca de tiempo más reciente.
robocopy frompath topath /s /xn
Espero que te ayude y comparte si tienes una mejor solución.