Veja um script (também conhecido como "arquivo em lote") que fará isso para você, caso não deseje baixar um programa de algum lugar:
@echo off
setlocal enabledelayedexpansion
for /r %%F in (*.m4a) do (
set mp3name=%%~dpnF.mp3
if exist !mp3name! (
fc/b %%F !mp3name! > nul
if errorlevel 1 (
echo Warning: %%F and !mp3name! both exist but are not identical.
) else (
echo DEL %%F
)
)
)
Interpretação:
-
for %%letter in (wildcard) do some_commandvarre o diretório atual para arquivos que correspondem ao curinga e executa o comando com a variável identificada peloletterdefinido para o nome do arquivo. -
for /r %%letter in ...é o mesmo, mas recursivo. -
(…)permite especificar um bloco de comandos em vez de apenas um. - Como indicado acima,
%%Fé o nome do arquivo M4A que foi encontrado. -
%%~dpnFé a letra da unidade, o caminho e as partes do nome (base)%%F–– isto é, todos menos a extensão. Para isso, adicionamos uma extensão.mp3; ou seja, um nome de arquivo igual ao%%F, exceto que ele possui uma extensão.mp3. Atribua este nome à variávelmp3name. - Se este arquivo existir, faça as próximas seis linhas. (Observe que estamos novamente usando
(…)para especificar um bloco de comandos.) -
fc/b %%F !mp3name! > nul––fcé f ile c ompare.fcgosta de comparar arquivos de texto, então dizemosfc/bpara fazer uma comparação binária de b . Entãofc/b %%F !mp3name!compara os dois arquivos.> nulsignifica não exibir os resultados da comparação na tela; só queremos que o script saiba o resultado da comparação. -
if errorlevel 1significa fazer o (s) seguinte (s) comando (s) apenas se o comando imediatamente anterior “falhou”. No caso defc, "falha" significa que os arquivos não eram idênticos, portanto, temos o script informando queHey_Jude.mp3eHey_Jude.m4aexistem, mas não são idênticos. - Finalmente,
DEL %%Fsignifica excluir o arquivo. (echo DEL %%Fsignifica exibir o comando delete, mas não o execute.)
Configuração:
- No Windows Explorer, vá para a raiz (parte superior) do diretório de músicas, faça um novo arquivo de texto e nomeie-o.
- Clique duas vezes nele para abri-lo (editá-lo) no Bloco de Notas. Copie e cole o script acima. Salve e saia.
- De volta ao Windows Explorer, renomeie o arquivo Texto (
.txt) para ter uma extensão.bat. Ignore o aviso; clique em "Sim". - Iniciar um prompt de comando.
cdpara o diretório acima. Digite o nome do arquivo de script (lote) (você pode digitar a extensão.bat, mas provavelmente não precisa). Verifique se a lista de comandosDELreporta parece razoável. Se isso acontecer, - Volte no Windows Explorer, clique com o botão direito do mouse no arquivo
.bate selecione Editar. - No bloco de notas, altere
echo DELparaDEL. Salve e saia. - De volta ao prompt de comando, execute o comando novamente.