【问题标题】:Batch File to zip files - apply to sub directories批处理文件到 zip 文件 - 适用于子目录
【发布时间】:2017-04-01 00:55:40
【问题描述】:

我正在寻找一个批处理文件以应用于所有子目录。

我有很多文件夹。每个文件夹将包含文件对
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

有什么帮助吗?

【问题讨论】:

  • 在批处理文件中的目录中循环(迭代)已经被问过并回答了好几次。进行一些搜索,您应该会找到一些可以帮助您入门的代码。

标签: batch-file zip


【解决方案1】:
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

请注意,这是一个 batch 行 - 要从提示符执行,将元变量中的每个 %% 减少为 %(但通过剪切将其放入批处理中要容易得多-and-paste;保存所有这些错别字...)

所需的命令只是ECHOed 用于测试目的。 验证命令正确后,删除出现在命令前的字符串ECHO(,以实际执行命令。

使用for /r 将遍历与提供的掩码匹配的文件名(也可以添加一个起始目录 - 请参阅提示中的for /?|more。)

由于我们知道选择的完整文件名存在,首先检查配对文件是否存在,然后切换到需要的目录,归档,然后切换回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多