Совет Windows: как копировать файлы, не перезаписывая их в командной строке

Если вы копируете файлы с помощью перетаскивания или копирования/вставки, вы можете просто выбрать опцию «Пропустить этот файл» или «Пропустить эти файлы», чтобы не перезаписывать файлы, которые уже существуют в целевой папке.

Или, если вы используете командную строку copy , вы можете ответить N, чтобы пропустить уже существующие файлы.

Но как я могу сделать то же самое с помощью командного файла, используя любую командную строку копирования?

Есть два способа сделать это.

Вы можете использовать оператор IF для копирования файла только в том случае, если файл не существует в месте назначения.

 IF NOT EXIST "  topath  filename "COPY" frompath  file "" topath  file "

Друг NoW, Гленн Реймче, поделился гораздо лучшим способом, используя командную строку copy без оператора IF.

 echo n |  copy/-y "frompath  file" "topath  file" 

Если вам нужно скопировать папку в другое место, но не перезаписывать файлы, уже существующие в новом месте, вот что вы можете сделать.

 FOR% f in ("  frompath  file  *. *) НЕ СУЩЕСТВУЕТ "topath % ~ nxf" COPY "frompath  file" "topath  file" 

% ~ nx в команде — это удалить информацию о папке из переменной % f , чтобы в результате вы получили только имя файла.

Или используйте много вместо этого мощная альтернатива командной строки копирования, то есть robocopy.

Вы можете использовать следующие переключатели, чтобы пропустить определенные файлы.

/xc - исключить измененные файлы/xn - исключить более новые  files/xo - исключить старые файлы 

Например, чтобы скопировать все файлы из папки A в папку B, исключая все файлы с более новой меткой времени.

 robocopy frompath topath /s/xn 

Надеюсь, это поможет, и, пожалуйста, поделитесь, если у вас есть лучшее решение.

Оцените статью
toodcast.ru
Добавить комментарий