【发布时间】:2016-05-19 20:40:20
【问题描述】:
批处理文件中的特殊字符很麻烦,但我还没有找到正确的解决方法来正确转义我试图传递应用程序的这个特定字符串的前两个字符。
SET pass=^&AntiBatchfileString
A_Program.exe /pass=%pass%
我尝试过的事情:
:: Escaping the escape twice, first for ^, second for &.
SET pass=^^^^&AntiBatchfileString
echo %pass%
:: Combining escapes.
SET first=^^
SET second=^^&AntiBatchfileString
SET pass=%first%%second%
echo %pass%
:: Preventing expansion
SET first=^^
SET second=^^&AntiBatchfileString
SET pass=!first!%second%
echo %pass%
:: I got this to print correctly
SET "pass=^&AntiBatchfileString"
echo ^^%pass%
仍然在通过最后一个时它不接受登录,我不知道最终输出是什么。这让我想到它可能是在将参数传递给应用程序时尝试进行另一次扩展,所以我也引用了它。
SET "pass=^&AntiBatchfileString"
A_Program.exe "/pass=^^%pass%"
它仍然无法正常工作,我不确定我现在缺少什么。
【问题讨论】:
标签: windows batch-file cmd escaping