回复 11# idwma
此方法已试,对”双引号"确实可以!
很奇特,7z都没有 -p参数,此时会弹出输入密码状态,此方法将echo 内容通过|直接转给7z,7z刚好在密码输入界面,就自动接收echo输出内容,并下一步,从而实现了密码输入并解压。没想到这么用,论坛能人多,感谢!
不过也有新问题了,具体是我在尝试各种特殊字符密码验证的时候,目前发现含^的密码会出错,原因是echo 内容如果有^会直接消失。不清楚还有没有其它字符会消失。
具体验证一个密码20'`."“48"^"2"^",通过观察发现直接echo会将两个^丢失,应该是这导致解压不成功。两加双引号可以不丢^但echo也会多输出两个"给7z- @echo off
- FOR /F "delims=" %%i in ('echo 20'`."“48"^"2"^"') do (
- echo %%i
- )
- echo 20'`."“48"^"2"^"
- echo "20'`."“48"^"2"^""
- echo 隔1
- set "a=20'`."“48"^"2"^""
- echo %a%
- echo "%a%"
- echo 隔2
- echo %a%%
- echo ^%a%
- echo 隔3
- echo %%a%%^
- echo 隔4
- echo 隔5
- echo 隔6^
- echo end
- echo %a% |7z.exe x raddr.7z -oC:\1\ -aoa -bse0 -bsp2
复制代码
- 20'`."“48""2""
- 20'`."“48""2"^"
- "20'`."“48"^"2"^""
- 隔1
- 20'`."“48""2"^"
- "20'`."“48"^"2"^""
- 隔2
- 20'`."“48""2"^"
- 20'`."“48""2"^"
- 隔3
- %a%echo 隔4
- 隔5
- 隔6echo end
-
- 7-Zip 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
-
- Scanning the drive for archives:
- 1 file, 237 bytes (1 KiB)
-
- Extracting archive: raddr.7z
-
- Enter password (will not be echoed):
-
- Can't open as archive: 1
- Files: 0
- Size: 0
- Compressed: 0
- 请按任意键继续. . .
复制代码
|