Windows - mantenha (!) nomes de arquivos duplicados de pastas diferentes

0

Todas as respostas que eu encontro são sobre a exclusão de arquivos duplicados, mas eu quero manter nomes de arquivos duplicados (não arquivos, eles só têm o mesmo nome).

Eu tenho brincado com o software de processamento de fotos RAW. Eu usei dois programas diferentes para processar um conjunto de fotos. Depois de usar o software A, fiz uma seleção das imagens que quero manter (e excluí as outras). No entanto, eu gosto do processamento do software B melhor.

Agora, tenho um conjunto completo de arquivos em C:\Temp\B\ (980 imagens) e uma seleção em C:\Temp\A\ (544 imagens)

Existe uma maneira de filtrar as imagens que eu não selecionei em A e excluir esses arquivos de C:\Temp\B\ ?

Estou usando o Windows 10, estou bem em usar um pouco de script no bash (usando babun) ou Python.

    
por RedPixel 22.10.2017 / 15:18

2 respostas

1

Minha solução é uma adaptação do link

Eu executei isso no código do Visual Studio, usando a extensão do Python

import os a = os.listdir("C:/Data/A") b = os.listdir("C:/Data/B") for f in b: if f not in a: print(f) os.remove(os.path.join("C:/Data/B", f))

    
por 22.10.2017 / 15:34
0

Você pode salvar a seguinte linha em um novo arquivo de lote (.cmd ou .bat):

FOR %%A in (C:\Temp\A\*) DO MOVE C:\Temp\B\%%~nxA C:\Temp\X\

Agora você tem todos os arquivos de A, que estão presentes em B, para serem movidos de B para uma nova pasta X. Faça uma inspeção visual para garantir que tudo está OK e, em seguida, exclua B manualmente.

Você também pode executar esse comando a partir do CMD, mas deve deixar um único sinal de porcentagem em vez de dois.

Tenha muito cuidado, pois um único caractere ausente pode comer todos os seus arquivos B. Eu corri o comando assim primeiro, para ter certeza de que é seguro:

FOR %%A in (C:\Temp\A\*) DO ECHO MOVE C:\Temp\B\%%~nxA C:\Temp\X\
    
por 22.10.2017 / 15:53