Answers:
您需要做的是将密码用双引号引起来,如下所示:
set pwd="abc&123"
echo %pwd%
让我知道事情的后续。
set "pwd=abc&123"
我发现,结合martineau的答案和mastashake57的答案,效果最好。
set pwd=abc^&123
echo %pwd%
仍然失败,并且
set pwd="abc&123"
echo %pwd%
向其添加引号(您不能使用for
循环或字符串操作删除引号,因为使用&符,它将再次失败),这并不是很好。
然而,
set "pwd=abc^&123"
echo %pwd%
完美运作。
希望能有所帮助。
pwd
为abc^&123
。在大多数情况下,这可能正是您需要做的,但是如果您不知道发生了什么,它可能会让您失望。
/?
仅提供摘要,而不提供全面的文档。
从命令行参考帮助文件:
与符号(&),竖线(|)和括号()是特殊字符,当您将它们作为参数传递时,必须在其前加上转义字符(^)或引号。
如果密码中包含两个以上的字符需要处理,则似乎比将单个字符转义更容易。
您真正需要的是:
set pwd=abc^^^&123
echo %pwd%
要么:
set "pwd=abc^&123"
echo %pwd%
由于&
是特殊字符,因此必须使用进行转义^
,导致^&
。
运行set pwd=abc^&123
会将变量设置为value abc&123
。此后,如果要运行echo %pwd%
,就可以有效运行echo abc&123
。
但是echo abc&123
却不能按预期工作,因为这&
是一个特殊的字符。您可以通过添加引号来避免这种情况:echo "abc&123"
但是您的输出也将包含引号字符。换句话说,使用引号并不是完全正确的解决方案。
您需要的是&
在运行echo
命令时对char 进行转义:
echo abc^&123
因此,变量需要包含value abc^&123
。要将变量设置为value abc^&123
,您需要转义特殊字符char ^
和&
,从而导致:
set pwd=abc^^^&123