Eu não sou suficientemente fluente em Dos para ajudá-lo, mas se sua tarefa não precisar de automatização, você pode descobrir que O limpador duplicado atende às suas necessidades.
Um associado meu escreveu um script para mim que, teoricamente, deve excluir arquivos que tenham o mesmo nome, independentemente do tipo de arquivo. Especificamente, ele verifica arquivos mp3, m4a, wma, wav. No entanto, eu tentei e não exclui nenhum arquivo. Há algo de errado com o script ou com as configurações do meu computador?
@Echo Off
Rem CMD file to look for duplicate media files and delete them.
Rem 1. x.y & x (1).y etc.
Rem 2. x.y and x.z
Rem
Rem Calling: %0 <Directory>
Rem
Rem Defaults to current directory if <directory> is not specified.
Rem Save environment and enable local extensions
SetLocal
SetLocal EnableExtensions EnableDelayedExpansion
Rem Set media extensions to check in priority sequence i.e. later extension will be deleted if earlier extension exists
Set mediaExts=.mp3,.m4a,.wma,.wav
Rem Get media directory
Set mediaDir=%1
If .%1 == . Set mediaDir="%CD%"
Rem Loop through media files
For /R %mediaDir% %%f In (*.*) Do Call :checkFile %%f
Pause
Goto :eof
:checkFile
Rem If file has been deleted in a previous loop then skip
If Not Exist %1 Goto :eof
Rem Check for name (*).ext etc. and delete if found
For %%d In ("%~dpn1 (*)%~x1") Do (
Echo Deleting "%%d" because "%1" exists.
If Not %1 == %%d Del /f "%%d"
)
Rem Check for alternative audio files
Set found=
For %%x In (%mediaExts%) Do (
If Exist "%~dpn1%%x" (
If .!found!==. (
Set found=%~dpn1%%x
) Else (
Echo Deleting "%~dpn1%%x" because "!found!" exists.
Del /f "%~dpn1%%x"
)
)
)
Goto :eof
Eu não sou suficientemente fluente em Dos para ajudá-lo, mas se sua tarefa não precisar de automatização, você pode descobrir que O limpador duplicado atende às suas necessidades.
Acho que isso também pode dar uma resposta.
if not exist...
falharia se houvesse um espaço. Deve ser colocado entre aspas. Em outras palavras, o script não está excluindo nada porque nunca encontra nada para excluir. Por que reinventar a roda? Por que não usar algo assim? link
Tags windows batch deduplication