1

У меня есть много файлов в folder1 и я хотел бы переместить их в folder2 . Есть небольшое количество файлов уже в folder2 (сто по сравнению с в folder1 несколько тысяч) , и я хотел бы, чтобы переместить все файлы из folder1 в folder2 кроме случаев , когда есть имя файла конфликт. (В этот момент я проверю оставшиеся файлы по отдельности и при необходимости пропущу / изменим / заменим.)

Есть ли хороший способ сделать это? Я на Windows 10, но я могу использовать bash через MinGW, если это более удобно.

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

1 ответ1

2

Я хочу переместить все файлы из folder1 в folder2, если нет конфликта имен файлов.

Используйте следующий пакетный файл (находится в родительском каталоге folder1 и folder2 .

MovesFiles.cmd:

@echo off 
setlocal enabledelayedexpansion
for /f %%f in ('dir /b folder1') do (
  if not exist folder2\%%~nxf move folder1\%%~nxf folder2 
  )
endlocal

Заметки:

  • Любые файлы, в которых есть конфликт имен (т.е. уже существует в folder2), остаются в folder1 .
  • Все остальные файлы перемещаются.

Пример использования:

F:\test>dir /b folder1
1.txt
2.txt
3.txt
4.txt
5.txt

F:\test>dir /b folder2
2.txt
4.txt

F:\test>MoveFiles.cmd
        1 file(s) moved.
        1 file(s) moved.
        1 file(s) moved.

F:\test>dir /b folder1
2.txt
4.txt

F:\test>dir /b folder2
1.txt
2.txt
3.txt
4.txt
5.txt

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .