如何在批处理文件函数参数中转义&符号?

时间:2012-12-24 11:42:35

标签: windows batch-file escaping

这是问题的继续 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。

2 个答案:

答案 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)

^&是正确的转义方式,但双引号通常不需要它。

来源: Escape Characters