Coloque o seguinte em um arquivo .cmd (ou arquivo .bat) e execute-o no diretório raiz / base de onde deseja iniciar a verificação e exclusão dos arquivos de vídeo duplicados.
O script excluirá todos os arquivos que tiverem o mesmo nome de arquivo que um arquivo .mkv no mesmo diretório. Mas, ele não excluirá nenhum arquivo .nfo.
Além disso, o script está aplicando o mesmo procedimento a todos os subdiretórios de forma recursiva.
Observe o uso de setlocal
. O script faz uso da expansão de variável de ambiente atrasada. No entanto, isso tem o problema de engolir marcas de exlamação que podem fazer parte do conteúdo de uma variável. Para evitar essa eliminação indesejada de pontos de exclamação, a expansão da variável de ambiente atrasada é ativada somente quando necessário.
@echo off
setlocal enableextensions disabledelayedexpansion
echo Processing directory: "%CD%"
rem The outer for-loop goes through all ".mkv" files in the current folder.
rem The inner for-loop goes through all files with the same base file name
rem as the ".mkv" file and deletes them if its file extension is
rem neither ".mkv" nor ".nfo".
for %%i in (*.mkv) do (
set BaseFileName=%%~ni
setlocal enabledelayedexpansion
for %%j in ("!BaseFileName!.*") do (
set FileExtension=%%~xj
if /i {!FileExtension!} neq {.mkv} if /i {!FileExtension!} neq {.nfo} (
setlocal disabledelayedexpansion
echo Deleting %%j
del /q /f "%%j"
endlocal
)
)
endlocal
)
rem This for-loop is responsible for the recursion into sub directories.
set BatchFileAbsolutePath=%~df0
for /d %%i in (*.*) do (
pushd "%%i"
call "%BatchFileAbsolutePath%"
popd
)