批量删除非音乐文件的所有文件

时间:2013-08-02 20:35:33

标签: windows batch-file cmd delete-file

我想删除“music”文件夹中不是.mp3,.mp4或.m4a的所有文件。

这是文件夹结构:

H:/Music/Artist/Album/Files

这些文件夹中有Folder.jpg,播放列表文件,.txts等图片。

我正在运行Windows 8。

3 个答案:

答案 0 :(得分:2)

使用 do-not-delete-extensions 设置一个数组,并用它比较所有文件:

@ECHO OFF &SETLOCAL
SET "startfolder=H:/Music/Artist/Album/Files"
FOR %%a IN (
    .mp2
    .mp3
    .mp4
    .m4a
    .wav
    .flac
    .ac3
    .dts
    ) DO (
    SET "$%%a=1"
)
FOR /r "%startfolder%" %%a IN (*) DO IF NOT DEFINED $%%~xa ECHO DEL "%%~fa"

请注意:没有扩展名的文件将被删除。

答案 1 :(得分:0)

你可以尝试:

  1. MKDIR创建临时子文件夹
  2. 将所有音乐文件(* .mp?,*。m4a,* .wav,...)移动到该文件夹​​。
  3. 删除所有剩余文件
  4. 移回音乐文件。
  5. RMDIR临时子文件夹。

答案 2 :(得分:-1)

如果这是“一次性任务”,请使用Windows资源管理器(排序为“类型”)。这比为它编写和测试批处理要快得多(也更安全)。