删除没有与其关联的“sample.ext”文件的“sample.ext.ext2”文件

该应用程序创build.mta文件(具有完全相同的名称)的所有多媒体文件在我的硬盘。 我想要做的是检查根文件夹的所有子文件夹,如果没有与某些.mta关联的多媒体文件,然后删除它。

详细的例子。 可以说我们有文件

 01.mp3 01.MP3.mta 02.mkv 02.MKV.mta 03.jpg 03.JPG.mta 04.MP4.mta <<== 

正如你看到最后.mta没有原始文件。 我想删除最后一个文件。

我不知道是否可以用cmd。 但是下面的function不起作用。 请看一下

 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 

你可以使用一个for命令来做到这一点与dir /a喂养隐藏和非隐藏的文件名。 这是一个例子:

 C:\temp\z\z>attrib * AC:\temp\z\z\foo.bar.mta AHC:\temp\z\z\h2.mp4.mta AC:\temp\z\z\hid.mp4 AHC:\temp\z\z\hid.mp4.mta AC:\temp\z\z\zoo.bar AC:\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替换回显应该达到你的目标。