这是问题的继续 How do I escape ampersands in batch files? 。
该问题提供了在批处理文件中使用&符号的一些方法。但是,对于函数参数来说,它们似乎都不起作用。例如:
@echo off
setlocal EnableDelayedExpansion
call:myFunction "http://www.google.com/search?client=opera&q=escape+ampersand"
goto:eof
:myFunction
echo Param is: %~1
goto:eof
我总是得到
Param is: http://www.google.com/search?client=opera
'q' is not recognized as an internal or external command,
operable program or batch file.
我已经尝试^
来逃避它,但这似乎也无效。有办法吗?
如果重要,我的实际用例是为批量函数中调用的wget提供下载URL。
答案 0 :(得分:2)
现在感觉有点傻......
@echo off
setlocal EnableDelayedExpansion
call:myFunction "http://www.google.com/search?client=opera&q=escape+ampersand"
goto:eof
:myFunction
echo Parameter is: "%~1"
goto:eof
结果:
Parameter is: "http://www.google.com/search?client=opera&q=escape+ampersand"
答案 1 :(得分:1)
^&
是正确的转义方式,但双引号通常不需要它。