arquivo em lote para mover arquivos de sub dirs para dir raiz com sobrescritos de arquivos com conflitos de nome

3

Então, solicitando ajuda, estou tentando resolver uma bagunça em minhas fotos do google. Eu baixei o arquivo das minhas fotos do google e tenho um monte de pastas com arquivos / fotos nelas. Eu estou tentando escrever um arquivo em lotes para mover os arquivos / fotos da pasta para a raiz desta unidade portátil que estou usando para a limpeza.

Até agora eu tenho isso:

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

Funciona, o único problema que tenho é que potencialmente pode haver fotos com o mesmo nome de arquivo em pastas diferentes e não quero sobrescrevê-lo.

Existe algum parâmetro que eu possa definir no comando Mover para bloquear a sobregravação?

Obrigado

    
por ElGabbu 17.05.2016 / 18:55

1 resposta

0

Existe algum parâmetro que eu possa definir no comando Mover para bloquear a sobregravação?

Você pode usar a opção /-Y (Ativar confirmação, ao sobrescrever arquivos).

O seguinte truque responderá a n , então o movimento não acontece:

echo n|move /-y "%%f" .

Notas:

  • Esse truque funciona apenas para um único arquivo, sem curingas

  • Se um arquivo for não movido, o seguinte comando rd falhará com o seguinte erro:

    The directory is not empty.
    

Leitura Adicional

por 17.05.2016 / 19:05