[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助 文件夹批量压缩的批处理遇到的问题

我这现在有很多文件夹需要压缩并设置统一密码,我在网上找了一个脚本
  1. @echo off
  2. :: 设置7z的命令行程序路径
  3. set Sz=D:\Program Files\7-Zip\7z.exe
  4. :: 设置压缩包保存路径
  5. set Save=./
  6. :: 设置要打包压缩的文件夹,即当前目录
  7. set Com=./
  8. :: 设置压缩密码
  9. set Password=123456
  10. :: 批量压缩当前目录下的文件夹,带密码
  11. for /d %%X in (*) do "%Sz%" a -tzip -p%Password%  -mx5 "%Save%\%%X.zip" "%%X\"
复制代码
现在问题就是需要压缩的文件夹里面有一个txt文件不需要密码,怎么给他排除

压缩会把文件夹也压缩进去,会多出一个子文件夹 不需要这个,直接让文件夹里面的文件压缩就要行了,设置密码排除掉txt文件

没见过这样的压缩包...
是否考虑压缩两次呢?将加密的压缩包和txt,不加密再压缩成一个压缩包
bat小白,请多指教!谢谢!

TOP

本帖最后由 aloha20200628 于 2024-7-16 19:49 编辑

回复 1# 20060126

经实测可知 7z(例如r19+版本均可)支持同一压缩包内并存 ‘有/无’ 密码的文件,只须分别压入即可。
以下代码假设被排除的文本文件 ".\abc\xyz.txt" 位于当前目录下某一子目录 ".\abc\" 中(须楼主据实况修正
代码第6行对当前目录下的每个子目录完成有密码的*.*文件全压缩(不保留目录结构),但排除 ".\abc\xyz.txt"
代码第7行单独无密码压缩 ".\abc\xyz.txt" 至对应子目录的压缩包 ".\abc.7z"(须楼主据实况修正
  1. @echo off &setlocal
  2. set z7F="D:\Program Files\7-Zip\7z.exe"
  3. set pw="123456"
  4. ::须根据实况修正下行中的abc和xyz的取值
  5. set txtF=".\abc\xyz.txt" &set zF=".\abc.7z"
  6. for /d %%d in (*) do %z7F% a -t7z "%%d.7z" -x!%txtF% -p%pw% -y ".\%%d\*">nul
  7. %z7F% a -t7z %zF% -y %txtF%>nul
  8. endlocal&pause&exit/b
复制代码
1

评分人数

    • 77七: 感谢分享技术 + 1

TOP

受aloha20200628大佬启发,发现真的可以一个压缩包设置不同密码
以下使用winrar压缩软件的rar.exe完成,使用须将rar.exe添加到系统环境变量。假设楼主须压缩的目录下仅有1个txt文件。
  1. @echo off
  2. for /d %%d in (*) do (
  3. rar a -r "%%d" -p123 -ep -x"%%d\*.txt" "%%d\*"
  4. rar a "%%d" -ep "%%d\*.txt"
  5. )
  6. pause
  7. exit
  8. 解压方法
  9. 解压全部(包含密码为123及无密码)文件
  10. rar x -p123 1.rar
  11. 只解压文本
  12. rar x 1.rar *.txt
  13. 压缩包文件设置不同密码
  14. rar a 1 -p123 *.txt
  15. rar a 1 -p456 *.mp3
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表