应用程序为我的HDD中的所有多媒体文件创建.mta
个文件(名称完全相同)。我想要做的是检查根文件夹的所有子文件夹,如果没有与某些.mta
关联的多媒体文件,则删除它。
详细示例。假设我们有文件
01.mp3
01.MP3.mta
02.mkv
02.MKV.mta
03.jpg
03.JPG.mta
04.MP4.mta <<==
如您所见,上一个.mta
没有原始文件。我想删除最后一个文件。
我不知道是否可以使用cmd。但是以下功能不起作用。请看一下
For /r %%i in (*.mta) do call :nomta %%i
pause
goto end
:nomta
set stem=%1:.mta=%
set original=%stem%.mta
if not exist %original% do exit /B
if not exist %stem% do del /a /Q %1
goto :EOF
:end
echo done
PAUSE
答案 0 :(得分:0)
您可以使用for命令执行此操作,dir /a
将隐藏和非隐藏文件名提供给它。这是一个例子:
C:\temp\z\z>attrib *
A C:\temp\z\z\foo.bar.mta
A H C:\temp\z\z\h2.mp4.mta
A C:\temp\z\z\hid.mp4
A H C:\temp\z\z\hid.mp4.mta
A C:\temp\z\z\zoo.bar
A C:\temp\z\z\zoo.bar.mta
C:\temp\z\z>for /f %F in ('dir /b/a *.mta') do if not exist "%~nF" echo %F >> z
C:\temp\z\z>type z
foo.bar.mta
h2.mp4.mta
所以用del替换echo应该达到你的目标。