Board logo

标题: [文本处理] 求助 文件夹批量压缩的批处理遇到的问题 [打印本页]

作者: 20060126    时间: 2024-7-15 08:46     标题: 求助 文件夹批量压缩的批处理遇到的问题

我这现在有很多文件夹需要压缩并设置统一密码,我在网上找了一个脚本
  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文件

作者: 77七    时间: 2024-7-15 12:36

没见过这样的压缩包...
是否考虑压缩两次呢?将加密的压缩包和txt,不加密再压缩成一个压缩包
作者: aloha20200628    时间: 2024-7-16 12:31

本帖最后由 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
复制代码

作者: 77七    时间: 2024-7-16 16:12

受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
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2