2017-04-01 112 views
0

我正在尋找批處理文件以應用於所有子目錄。批處理文件壓縮文件 - 適用於子目錄

我有一些文件夾。每個文件夾將包含文件對
xxx1.mp3和xxx1.cdg,
xxx2.mp3和xxx2.cdg,

我有一個7zip的批處理文件,將查找文件對,建立單一的zip文件xxx1.zip,xxx2.zip並刪除(現在)多餘的cdg/mp3文件。

但是,只有在每個單獨的文件夾中運行bat文件時才能使用。我真正想要的是添加到bat文件的切換,如果我運行在根目錄下,也會運行所有子目錄。

我目前運行的代碼是:

FOR %F IN (*.cdg) DO "C:\Program Files\7-Zip\7Z.exe" a "%~nF.zip" "%~nF.cdg" "%~nF.mp3" -sdel 

任何幫助嗎?

+0

循環(遍歷)批處理文件中的目錄在此之前已經被詢問和回答了幾次。做一些搜索,你應該出現一些能夠讓你開始的代碼。 –

回答

0
FOR /R %%F IN (*.cdg) DO IF EXIST "%%~dpnF.mp3" pushd "%%~dpF"&ECHO("C:\Program Files\7-Zip\7Z.exe" a "%%~nF.zip" "%%~nF.cdg" "%%~nF.mp3" -sdel&POPD 

注意,這是一個一批線 - 從提示來執行,減少metavariable每個%%%(但它是一個整體更容易把它變成一個批次通過剪切和粘貼;保存所有這些錯別字......)

所需的命令僅僅是用於測試目的的ECHO確認命令正確後,請刪除字符串ECHO(,該字符串出現在命令之前,以便實際執行命令。

使用for /r將通過匹配提供的掩碼文件名重複(它可能還添加了啓動目錄 - 看到for /?|more從提示。)

因爲我們知道所選擇的完整的文件名存在,首先檢查配對文件存在,然後切換到所需的目錄,存檔並切回。

相關問題