Movimento em massa via Regex CMD

0

Eu tenho cerca de 15k arquivos em uma pasta simples. Todos são nomeados algo como blah blah - whatever.png . Basicamente, gostaria de movê-los para todas as pastas com o nome blah blah . Eu não quero renomear nenhum deles, apenas coloque-os em suas respectivas pastas. Eu imagino que preciso fazer isso com algum tipo de regex, mas não consigo exercitar como aplicar o regex neste contexto.

    
por LincM 19.09.2018 / 07:55

1 resposta

1

O comando for não suporta expressões regulares.

Supondo que todos os arquivos contenham um caractere - , você provavelmente poderá usar esse código em um arquivo em lotes:

for /f "delims=- tokens=1* usebackq" %%a in ('dir /b *.png') do (
    if not exist "%%a" mkdir "%%a"
    move "%%a-%%b" "%%a"
)

delims=- dividirá os nomes dos arquivos em - , fornecendo o nome do diretório que será criado se ainda não existir. Em seguida, o nome do arquivo original, %%a-%%b , será movido para esse diretório.

    
por 19.09.2018 / 09:14