标题: [文件操作] 【已解决】批处理7z批量压缩文件夹怎样把密码放在txt文件中调用? [打印本页]
作者: toyerspollors 时间: 2021-8-3 22:01 标题: 【已解决】批处理7z批量压缩文件夹怎样把密码放在txt文件中调用?
本帖最后由 toyerspollors 于 2021-8-6 09:00 编辑
我想使用不同的密码批量压缩、或解压不同的文件夹,我现在是每个txt文件放一个密码,但是txt文件一多了不好管理,能不能实现把所有密码统一放在一个txt文件中进行调用啊?- for /d %%X in (*男歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p<mima1.txt
-
- for /d %%X in (*女歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p<mima2.txt
-
- for /d %%X in (*电影*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p<mima3.txt
复制代码
-------------------------------------------------------------
要达到的效果
比如我有文件夹如下:
"萨德3 电影 2w0we0"
"dvw2 音乐 werw20"
"崩we 歌手 3fs245"
"学f2 动漫 20efs"
"fq3习 奥运 shrt6afc"
然后"mima.txt"内容如下:
:小妹妹
23423esfsfresfsdfsdfq3rwfs
:大妈
fsdfwefsdf353534534fsdf
:Jor
335efsdf353dg55y
想要达到的效果是,比如:
带有“电影”、“歌手”、“动漫”这些关键字字符的文件夹,都调用关键字“大妈”这组密码进行加密。
带有“奥运”关键字字符的文件夹,调用关键字“小妹妹”的密码进行加密。
作者: idwma 时间: 2021-8-3 23:18
本帖最后由 idwma 于 2021-8-3 23:36 编辑
还是套娃- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (mima.txt) do (
- set/a n+=1
- if "!n!"=="1" for /d %%X in (*男歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- if "!n!"=="2" for /d %%X in (*女歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- if "!n!"=="3" for /d %%X in (*电影*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- )
复制代码
作者: toyerspollors 时间: 2021-8-4 00:09
mima.txt 文件中的密码要怎么编写?一组密码一行吗?
能不能实现类似下面的这种方式进行调用啊?这样我也好管理编辑对应的密码。
:mima1
lfjsidhfiennsjcn3u8seifjsij
:mima2
23423esfsfresfsdfsdfq3rwfs
:mima3
fsdfwefsdf353534534fsdf
作者: idwma 时间: 2021-8-4 13:27
回复 3# toyerspollors
可以- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type mima.txt^|findstr /v "^: ^$"') do (
- set/a n+=1
- if "!n!"=="1" for /d %%X in (*男歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- if "!n!"=="2" for /d %%X in (*女歌手*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- if "!n!"=="3" for /d %%X in (*电影*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- )
复制代码
作者: toyerspollors 时间: 2021-8-4 14:31
回复 toyerspollors
可以
idwma 发表于 2021-8-4 13:27
谢谢老师的帮助,不过这不是我想要的效果,看到老师2次编写的都是调取mima文件中的行数值来确定调用的密码,是我前面没有表达清楚,不好意思!我重新表达一下。
如“mima.txt”文件中的内容如下,这些只是举例子,我也不知道能不能这样编写。
:小妹妹
23423esfsfresfsdfsdfq3rwfs
:**姐
fsdfwefsdf353534534fsdf
:Jor
335efsdf353dg55y
然后在bat命令中,设置识别“小妹妹”、“**姐”、“Jor”这些值,然后它就会调用下方对应的这些密码进行加密或解密。而不是去识别文本的行数来调用对应的密码。表达能力有限,不知道老师是否理解。
作者: toyerspollors 时间: 2021-8-4 14:33
“小 姐 姐” 被和谐了
作者: idwma 时间: 2021-8-4 14:58
本帖最后由 idwma 于 2021-8-4 15:25 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (mima.txt) do (
- set s=%%i
- set/a n+=1
- if "!s:~0,1!"==":" set/a nn=!n!+1 &set ss=!s:~1!
- if "!n!"=="!nn!" for /d %%X in (*!ss!*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
- )
- pause
复制代码
作者: toyerspollors 时间: 2021-8-4 20:21
回复 7# idwma
谢谢老师,这个批处理能正常使用,不过密码只能一对一,使用起来不够灵活,能不能再修改一下达到下方的效果,这样也便于我自己后期灵活变动“关键字”。
比如我有文件夹如下:
"萨德3 电影 2w0we0"
"dvw2 音乐 werw20"
"崩we 歌手 3fs245"
"学f2 动漫 20efs"
"fq3习 奥运 shrt6afc"
然后"mima.txt"内容如下:
:小妹妹
23423esfsfresfsdfsdfq3rwfs
:大妈
fsdfwefsdf353534534fsdf
:Jor
335efsdf353dg55y
想要达到的效果是,比如:
带有“电影”、“歌手”、“动漫”这些关键字字符的文件夹,都调用关键字“大妈”这组密码进行加密。
带有“奥运”关键字字符的文件夹,调用关键字“小妹妹”的密码进行加密。
作者: idwma 时间: 2021-8-4 20:46
本帖最后由 idwma 于 2021-8-4 21:08 编辑
回复 8# toyerspollors - @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (mima.txt) do (
- set s=%%i
- set/a n+=1
- if "!s:~0,1!"==":" set/a nn=!n!+1 &set ss=!s:~1!
- if "!ss!"=="大妈" if "!n!"=="!nn!" for /f "delims=" %%X in ('dir/ad/b *电影* *歌手* *动漫*') do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
- if "!ss!"=="小妹" if "!n!"=="!nn!" for /f "delims=" %%X in ('dir/ad/b *奥运*') do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
- )
- pause
复制代码
作者: toyerspollors 时间: 2021-8-6 09:06
本帖最后由 toyerspollors 于 2021-8-6 09:10 编辑
回复 9# idwma
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (mima.txt) do (
set s=%%i
set/a n+=1
if "!s:~0,1!"==":" set/a nn=!n!+1 &set ss=!s:~1!
if "!ss!"=="大妈" if "!n!"=="!nn!" for /f "delims=" %%X in ('dir/ad/b *电影* *歌手* *动漫*') do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
if "!ss!"=="小妹" if "!n!"=="!nn!" for /f "delims=" %%X in ('dir/ad/b *奥运*') do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
)
pause
谢谢老师的帮助,看到老师编写的命名很实用,因我是一个bat业余初学者,请教一下,不知道以上红色字体标注的这些命令,要看那些教程能快速理解明白里面的意思?
还有我平时使用set变量,后面都是使用 %关键字% 的,这里看到老师貌似使用 !关键字! ,不知道区别是什么,是在什么情况下选择不同的用法?
作者: qixiaobin0715 时间: 2021-8-6 09:12
本帖最后由 qixiaobin0715 于 2021-8-6 09:15 编辑
http://bbs.bathome.net/thread-14927-1-1.html
http://www.bathome.net/viewthrea ... &from=favorites
http://www.bathome.net/viewthread.php?tid=2189&from=favorites
作者: toyerspollors 时间: 2021-8-6 09:35
回复 11# qixiaobin0715
谢谢帮助!
作者: toyerspollors 时间: 2021-8-6 14:37
if "!ss!"=="大妈" if "!n!"=="!nn!" for /f "delims=" %%X in ('dir/ad/b *电影* *歌手* *动漫*') do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i &set nn=
最后面的 &set nn= 如何理解??
作者: qixiaobin0715 时间: 2021-8-6 15:22
回复 13# toyerspollors
表示清空变量的值。
作者: Batcher 时间: 2021-8-6 21:48
回复 10# toyerspollors
对于刚刚接触BAT脚本的朋友们,建议把格式写的易读一点,例如:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (mima.txt) do (
- set s=%%i
- set /a n+=1
- if "!s:~0,1!"==":" (
- set /a nn=!n!+1
- set ss=!s:~1!
- )
- if "!ss!"=="大妈" (
- if "!n!"=="!nn!" (
- for /f "delims=" %%X in ('dir /ad /b *电影* *歌手* *动漫*') do (
- "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- set nn=
- )
- )
- ) else if "!ss!"=="小妹" (
- if "!n!"=="!nn!" (
- for /f "delims=" %%X in ('dir /ad /b *奥运*') do (
- "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\" -mhcf -mhe -mx=9 -p%%i
- set nn=
- )
- )
- )
- )
复制代码
作者: idwma 时间: 2021-8-6 22:30
回复 15# Batcher
呃这主要是懒,管理员你看论坛的这个插入代码,可不可以加个自动格式化的功能
作者: Batcher 时间: 2021-8-7 19:00
回复 16# idwma
建议找个趁手的编辑器用来写BAT代码。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |