将特定扩展名的文件移动到单个压缩档案

时间:2017-10-11 08:59:33

标签: batch-file cmd

我想按文件扩展名搜索文件,并将每个找到的文件打包在一个单独的存档中(逐个)并在压缩后删除文件。 存档文件应存储在找到文件的位置。

我希望为此任务确定两个参数:应该找到文件的文件夹的路径以及这些文件的文件扩展名。

例如:

路径:d:\folder\ 扩展名:txt

找到的名称应转移到7zip并开始打包:

7z a -mx9 -sdel d:\folder\subfolder1\filename1.txt.7z d:\folder\subfolder1\filename1.txt

之后将打包并删除:

7z a -mx9 -sdel d:\folder\subfolder2\filename2.txt.7z d:\folder\subfolder2\filename2.txt

我已经找到了如何使用命令行进行搜索:   @If "%1"=="" (Set pathf=D:\folder\) else (Set pathf=%1) @If "%2"=="" (Set exmf=*.txt) else (Set exmf=%2)

但我不知道如何以正确的格式将此信息发送到7zip。删除文件没有问题,因为7zip有-sdel选项可以解决问题。

1 个答案:

答案 0 :(得分:1)

使用问题中的命令设置变量后,只需添加以下行:

for /r "%pathf%" %%f in ("%exmf%") do 7z a -mx9 -sdel "%%f.7z" "%%f"