Mover arquivos sem conflitos [duplicado]

1

Eu tenho muitos arquivos em folder1 e gostaria de movê-los para folder2 . Há um pequeno número de arquivos já em folder2 (cem em comparação a vários milhares em folder1 ) e gostaria de mover todos os arquivos de folder1 para folder2 , exceto quando há um conflito de nome de arquivo. (Nesse ponto, vou examinar os arquivos restantes individualmente e pular / modificar / substituir conforme necessário.)

Existe uma boa maneira de fazer isso? Estou no Windows 10, mas posso usar bash via MinGW se for mais conveniente.

Isso é como Cópia de arquivos em lote e mover sem sobrescrever , exceto que envolve milhares de arquivos em vez de um único arquivo.

    
por Charles 24.08.2016 / 16:42

1 resposta

2

Eu quero mover todos os arquivos da pasta1 para a pasta2, a menos que haja um conflito de nome de arquivo.

Use o seguinte arquivo em lote (localizado no diretório pai de folder1 e 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

Notas:

  • Todos os arquivos em que há um conflito de nome (ou seja, já existem em folder2 ) são deixados em folder1 .
  • Todos os outros arquivos são movidos.

Exemplo de uso:

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

Leitura Adicional

por 24.08.2016 / 17:26