这是问题的延续如何在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