本帖最后由 fzp070 于 2022-8-13 23:52 编辑
回复 16# idwma
感谢解答,从文本接收密码的方法,已经试了,这个不行哦
顺便说下目前的进展:
1、上面说得将""双引号之类的代码转换下再作密码接收,弄了好久我没搞定,因为在遇到"|^&等各种特殊符合在一起的密码时,会出错。---目前个人能力暂无法搞定
2、我目前的方法是在密码传进7z解压前进行分类操作:
A、将无英标双引号的密码传给7z的-p密码接收参数,- "%paths%\7z.exe" x %paths1% -p"!pw!" -o%paths2%\ -aoa -bse0 -bsp2>7zOut.txt&&goto pass
复制代码 B、将有双引号但无^符号的传递给echo !pw!|7z,- echo !pw!|7z.exe x %paths1% -o%paths2%\ -aoa -bse0 -bsp2>%paths3%\7zOut.txt&&goto pass
复制代码 C、将既有双引号且有^号的密码,传给密码手动输入界面方案。同时在进入密码手动输入操作前,将密码传递给系统剪切板,在进入密码操作后,按Ctrl+V 或鼠标右键将密码输进去,只需按回车即可。- set/p="!pw!"<nul|clip&&"%paths%\7z.exe" x %paths1% -o%paths2%\ -aoa -bse0 -bsp2>7zOut.txt&&goto pass
复制代码 新问题:
目前三种分类中,A方案、B方案,没什么问题。
但C方案中一般的密码也没问题,只是在遇到中文双引号的密码时会变成英文双引号,导致仍需要人去修正。
我试了用如下命令粘贴出来是的没有问题,但不知道咋将这个粘贴结果传给7z手动输入界面的作为密码接收?- powershell -sta "add-type -as System.Windows.Forms; [windows.forms.clipboard]::GetText()"
复制代码 例如密码为:x^1@#$%&*(:&&}{|3^5"6”4-_aa
大佬们能帮忙看看吗?谢谢了
回复 12# Batcher |