标题: [文本处理] 求助 文件夹批量压缩的批处理遇到的问题 [打印本页]
作者: 20060126 时间: 2024-7-15 08:46 标题: 求助 文件夹批量压缩的批处理遇到的问题
我这现在有很多文件夹需要压缩并设置统一密码,我在网上找了一个脚本
- @echo off
- :: 设置7z的命令行程序路径
- set Sz=D:\Program Files\7-Zip\7z.exe
-
- :: 设置压缩包保存路径
- set Save=./
-
- :: 设置要打包压缩的文件夹,即当前目录
- set Com=./
-
- :: 设置压缩密码
- set Password=123456
-
- :: 批量压缩当前目录下的文件夹,带密码
- 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"(须楼主据实况修正)
- @echo off &setlocal
- set z7F="D:\Program Files\7-Zip\7z.exe"
- set pw="123456"
- ::须根据实况修正下行中的abc和xyz的取值
- set txtF=".\abc\xyz.txt" &set zF=".\abc.7z"
- for /d %%d in (*) do %z7F% a -t7z "%%d.7z" -x!%txtF% -p%pw% -y ".\%%d\*">nul
- %z7F% a -t7z %zF% -y %txtF%>nul
- endlocal&pause&exit/b
复制代码
作者: 77七 时间: 2024-7-16 16:12
受aloha20200628大佬启发,发现真的可以一个压缩包设置不同密码
以下使用winrar压缩软件的rar.exe完成,使用须将rar.exe添加到系统环境变量。假设楼主须压缩的目录下仅有1个txt文件。- @echo off
- for /d %%d in (*) do (
- rar a -r "%%d" -p123 -ep -x"%%d\*.txt" "%%d\*"
- rar a "%%d" -ep "%%d\*.txt"
- )
- pause
- exit
- 解压方法
- 解压全部(包含密码为123及无密码)文件
- rar x -p123 1.rar
-
- 只解压文本
- rar x 1.rar *.txt
-
-
- 压缩包文件设置不同密码
- rar a 1 -p123 *.txt
- rar a 1 -p456 *.mp3
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |