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

[文件操作] 【已解决】对含有特殊字符的字符串,在批处理中如何作为变量

本帖最后由 thp2008 于 2022-9-17 22:24 编辑

如下:AutoJY.bat 根据TSZF.txt提供的文件名和密码,自动进行解压操作,如果文件名或密码中含有特殊字符,这个时候,批处理应该如何处理,才能正常使用。

TSZF.TXT
  1. Lenovo!0301.rar,As^%dfks@s&BB
  2. Sony!23002.rar,&lklkja#ds@lsd!
  3. Google>1452313.rar,楞!顶啊*&……%¥asdl     
  4. Samsung<94.rar,网络|没人知道?花木成畦手自栽   
  5. Apple|551.rar,<;daslf98wrlk/mkljk     
  6. Asus^236.rar,>dsjaf2390@#$%dsf^adfs&*
  7. Nvdia&2081.rar,"6we(*^&$%^#$ads
复制代码
AutoJY.bat
  1. @echo off
  2. echo.
  3. echo 对含有特殊字符的字符串,在批处理中如何作为变量
  4. echo.
  5. for /f "tokens=1-2 delims=," %%a in ('TSZF.txt') do (
  6.     set FileName=%%a
  7.     set pass=%%b
  8.     call :PhaseTwo
  9. )
  10. pause
  11. :PhaseTwo
  12. set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
  13. "%rar%" x -y -p%pass% -o- "%FileName%"  "%~dp0"
复制代码
求助,批处理,对于特殊字串作为变量,应该如何处理?感谢!

其中有几个文件名,现实中WinRAR不允许创建,密码都允许。我用这么变态的密码,制作了几个测试压缩文件,既然都解压成功了。牛。感谢大神

TOP

回复  thp2008


    建议试试如下2个密码(这是我试7z解压时用的密码)看能不能解压解决,想知道Winrar有 ...
fzp070 发表于 2022-9-18 20:06



  我模拟了各种情况测试了
1、这个密码,有两个问题,其中有个感叹号是全角,换成半角才行;这行密码有多个空格,批处理会自动删除密码中的空格,手工复制到WinRAR密码框也会自动删除空格。也就是感叹号换成半角,空格删除的情况下,你这个密码是没有问题的。
2、单独一个空格是不行的。但是如果是 “1 2” 或者  “A  B” 这样夹在两个字母中间是可以的。不能是特殊符号中间。

TOP

返回列表