与%和^的CMD

我有一个file.bat,我通过命令行在Windows中运行。

它需要读取一些字符,如%^作为密码。

当我运行脚本时,我发现shell不会读取这些字符。

我能做些什么来解决这个问题?

你需要用^来逃避这些。

为了逃避^你使用另一个^^

正如jeb正确地指出你不能在命令行上跳过% ,但是当在变量字符串中设置变量时,它似乎接受它们。

 set p=hello% echo %p% hello% 

尝试这个:

 setlocal EnableDelayedExpansion set var=something for /f "delims=" %%a ("!var!") do ( endlocal set "result=%%~a" ) 

这将让命令提示符从var – source中读取特殊字符