标题: [文件操作] 【已解决】对含有特殊字符的字符串,在批处理中如何作为变量 [打印本页]
作者: thp2008 时间: 2022-9-17 17:16 标题: 【已解决】对含有特殊字符的字符串,在批处理中如何作为变量
本帖最后由 thp2008 于 2022-9-17 22:24 编辑
如下:AutoJY.bat 根据TSZF.txt提供的文件名和密码,自动进行解压操作,如果文件名或密码中含有特殊字符,这个时候,批处理应该如何处理,才能正常使用。
TSZF.TXT- Lenovo!0301.rar,As^%dfks@s&BB
- Sony!23002.rar,&lklkja#ds@lsd!
- Google>1452313.rar,楞!顶啊*&……%¥asdl
- Samsung<94.rar,网络|没人知道?花木成畦手自栽
- Apple|551.rar,<;daslf98wrlk/mkljk
- Asus^236.rar,>dsjaf2390@#$%dsf^adfs&*
- Nvdia&2081.rar,"6we(*^&$%^#$ads
复制代码
AutoJY.bat- @echo off
- echo.
- echo 对含有特殊字符的字符串,在批处理中如何作为变量
- echo.
- for /f "tokens=1-2 delims=," %%a in ('TSZF.txt') do (
- set FileName=%%a
- set pass=%%b
- call :PhaseTwo
- )
- pause
-
- :PhaseTwo
- set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
- "%rar%" x -y -p%pass% -o- "%FileName%" "%~dp0"
复制代码
求助,批处理,对于特殊字串作为变量,应该如何处理?感谢!
作者: flashercs 时间: 2022-9-17 21:52
本帖最后由 flashercs 于 2022-9-17 23:10 编辑
- @echo off
- set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
- echo.
- echo 对含有特殊字符的字符串,在批处理中如何作为变量
- echo.
- for /f "tokens=1-2 delims=," %%a in (TSZF.txt) do (
- set FileName=%%a
- set pass=%%b
- setlocal EnableDelayedExpansion
- set pass=!pass:"=""!
- "%rar%" x -y -p"!pass!" -o- "!FileName!" "%~dp0"
- endlocal
- )
- pause
- exit
复制代码
作者: thp2008 时间: 2022-9-17 22:26
其中有几个文件名,现实中WinRAR不允许创建,密码都允许。我用这么变态的密码,制作了几个测试压缩文件,既然都解压成功了。牛。感谢大神
作者: fzp070 时间: 2022-9-18 20:06
回复 3# thp2008
建议试试如下2个密码(这是我试7z解压时用的密码)看能不能解压解决,想知道Winrar有没有"^&|之类的问题- 1"@>::”#<$%"*%@“=?(*::"=*}{3"5*!!?%&|=6$”"4……-^_a=*a`~*()-_=+aa
- 一个空格
复制代码
注:一个空格是指真正的空格,不是汉字。
作者: thp2008 时间: 2022-9-19 11:52
回复 thp2008
建议试试如下2个密码(这是我试7z解压时用的密码)看能不能解压解决,想知道Winrar有 ...
fzp070 发表于 2022-9-18 20:06
我模拟了各种情况测试了
1、这个密码,有两个问题,其中有个感叹号是全角,换成半角才行;这行密码有多个空格,批处理会自动删除密码中的空格,手工复制到WinRAR密码框也会自动删除空格。也就是感叹号换成半角,空格删除的情况下,你这个密码是没有问题的。
2、单独一个空格是不行的。但是如果是 “1 2” 或者 “A B” 这样夹在两个字母中间是可以的。不能是特殊符号中间。
作者: fzp070 时间: 2022-9-19 16:18
回复 5# thp2008
非常感谢帮忙测试!
1、看来Winrar一样有对特殊字符的问题,不过7z/Bz目前我已在论坛找到方法解决(上面所示密码也可以),就是通过 先将密码 复制到剪贴板,之后再传递给7z/Bz解压。
http://www.bathome.net/thread-63453-1-1.html
2、纯空格问题,看来Winrar与Bz一样都不支持,不过7z是支持的。
作者: fzp070 时间: 2022-9-19 20:56
本帖最后由 fzp070 于 2022-9-19 21:00 编辑
回复 5# thp2008
刚刚安装Winrar,自测了下,Winrar对4楼的2个密码都是可以正常解压的。
更新下,7z格式也支持。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |