2017-04-01 85 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从提示。)

因为我们知道所选择的完整的文件名存在,首先检查配对文件存在,然后切换到所需的目录,存档并切回。

相关问题