Мой сотрудник написал для меня сценарий, который теоретически должен удалять файлы с одинаковыми именами, независимо от их типа. В частности, он проверяет файлы mp3, m4a, wma, wav. Тем не менее, я попробовал, и он не удаляет файлы. Что-то не так со скриптом или с настройками моего компьютера?
@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