从批处理变量中转义 & 符号

Escape from ampersand in batch variables

我正在尝试将一个复杂的批处理脚本放在一起,该脚本可以同时执行多项操作。我对它的一部分很感兴趣。 我希望脚本询问客户编号,然后将该编号放在 URL 中的特定位置。 问题是 URL 有一个符号,当我回显变量内容时它给出了一个错误。

@echo off
set /p id="Enter ID: "
set URL=https://firsturlsectionhere.com
set FULLURL=%URL%id%^&therestofurl
@echo %FULLURL%

如果你们能提供任何帮助,那就太好了。

如果您使用引号设置您的变量,那么您不需要转义与号。但是因为你有符号,你需要用延迟扩展来回显变量。

 @echo off
 set /p id="Enter ID: "
 set URL=https://firsturlsectionhere.com
 set "FULLURL=%URL%/%id%&therestofurl"
 setlocal enabledelayedexpansion
 echo !FULLURL!
 endlocal
 pause

如果您在变量中保留转义字符并用引号括起您的设置命令,那么您可以按原样回显变量。

 @echo off
 set /p id="Enter ID: "
 set URL=https://firsturlsectionhere.com
 set "FULLURL=%URL%/%id%^&therestofurl"
 echo %FULLURL%
 pause