2013-08-02 49 views
0

我想從我的「音樂」文件夾中刪除不是.mp3,.mp4或.m4a的所有文件。批量刪除不是音樂文件的所有文件

這是文件夾結構:

H:/Music/Artist/Album/Files 

有圖有像Folder.jpg,播放列表文件,.txts和等,在這些文件夾中。

我運行Windows 8的

+0

請問這個http://stackoverflow.com/questions/5193282/delete-files-that-match-regex有幫助嗎? 和這一個 http://stackoverflow.com/questions/14440692/windows-scripting-list-files-not-matching-a-pattern –

+1

或這一個:http://stackoverflow.com/questions/9424380/ delete-excluded-some-extensions –

+0

請更具體地說明您遇到問題的哪一步。是「查找所有文件」部分還是「它是音樂文件?」部分還是「刪除文件」部分? –

回答

2

建立一個數組拒收刪除的擴展和比較所有文件與它:

@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

如果這是一個「一次性任務」,使用Windows資源管理器(排序的「類型」)。這比編寫和測試批處理要快得多(也更安全)。

+0

問題是我有超過100個藝術家子文件夾和更多的子文件夾。 但你有我一個想法:我在文件夾中搜索「*。*」,按類型排序並刪除了我不想要的所有內容。 – thomi

+0

-1。 「使用Windows資源管理器」不是一個編程問題的合適答案。這至多是對原始問題的評論。這不是一個答案。 –

0

你可以嘗試:

  1. MKDIR創建一個臨時的子文件夾
  2. 將所有音樂文件(* .MP?*的.m4a,* .WAV,...)到該文件夾。
  3. DELete all remaining files
  4. 將音樂文件移回。
  5. RMDIR臨時子文件夾。