如何在batch file函数参数中跳过&符号?

这是问题的延续如何在batch file中跳过&符号?

这个问题提供了一些在batch file中使用ampresands的方法。 但是,对于函数参数来说,这似乎没有任何作用。 例:

@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. 

我试过^逃避它,似乎也不工作。 有没有办法?

编辑:如果它很重要,我的实际使用情况是提供一个下载url到批处理函数中调用的wget。

感觉有点傻了..

 @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=escape+ampersand" 

^&是正确的方式逃脱,但通常不需要双引号。

资料来源: http : //www.robvanderwoude.com/escapechars.php