如何在net use命令中传递末尾包含%的密码?
如何在net use命令中传递末尾包含%的密码?
我太懂这种踩批处理特殊字符坑的感觉了!你遇到的问题根源在于,批处理里的%是用来引用环境变量的特殊符号,单个的%会被解析器直接忽略,所以你密码末尾的那个%才会被“吃掉”,导致密码不正确。
给你两个靠谱的解决办法,都不需要修改密码:
方法一:转义%符号
在批处理里,要输出单个%的话,需要用两个%来转义。把你密码里的最后一个%改成%%,命令就变成这样:net use \\192.168.40.40 /user:192.168.40.40\Administrator b91A*9AIvPr%%执行脚本的时候,批处理会自动把
%%解析成单个%,这样密码就能完整传递给net use命令了。方法二:用延迟环境变量扩展
如果你不想直接修改密码字符串,可以先把密码存到变量里,开启延迟扩展后再调用变量。这样能绕过批处理对%的提前解析:@echo off setlocal enabledelayedexpansion set "password=b91A*9AIvPr%" net use \\192.168.40.40 /user:192.168.40.40\Administrator !password! endlocal这里用
!来引用变量(而不是常规的%),开启延迟扩展后,变量里的%会被完整保留,不会被解析器误处理。
你可以试试这两个方法,应该都能解决系统错误1326的问题~
备注:内容来源于stack exchange,提问作者xinkala
相关产品推荐
相关产品推荐

