How do I escape ampersands in batch files?
Solution 1:
&
is used to separate commands. Therefore you can use ^
to escape the &
.
Solution 2:
From a cmd:
-
&
is escaped like this:^&
(based on @Wael Dalloul's answer) -
%
does not need to be escaped
An example:
start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%20and%20percentage+in+cmd^&sourceid=opera^&ie=utf-8^&oe=utf-8
From a batch file
-
&
is escaped like this:^&
(based on @Wael Dalloul's answer) -
%
is escaped like this:%%
(based on the OPs update)
An example:
start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%%20and%%20percentage+in+batch+file^&sourceid=opera^&ie=utf-8^&oe=utf-8
Solution 3:
You can enclose it in quotes, if you supply a dummy first argument.
Note that you need to supply a dummy first argument in this case, as start
will treat the first argument as a title for the new console windows, if it is quoted. So the following should work (and does here):
start "" "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
Solution 4:
explorer "http://www.google.com/search?client=opera&rls=...."