Как избежать амперсандов в пакетном файле (или из командной строки Windows), чтобы использовать команду start
для открытия веб-страниц с амперсандами в URL-адресе?
Двойные кавычки не работают с start
; вместо этого запускается новое окно командной строки.
Обновление 1: решение Ваэля Даллула работает. Кроме того, если в URL-адресе есть символы в кодировке URL (например, пробел кодируется как% 20) и он находится в пакетном файле, тогда "%" должен быть закодирован как "%%". В данном примере это не так.
Пример из командной строки (CMD.EXE
):
start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8
приведет к
http://www.google.com/search?client=opera
открываются в браузере по умолчанию и эти ошибки в окне командной строки:
'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.
Платформа: Windows XP 64 бит SP2.
start
, из-за которой цитирование аргумента не выполняется, если его применить не задумываясь. И в целом, я думаю, что заключить аргумент в кавычки проще и менее подвержено ошибкам, чем экранировать каждый символ, которому нужно экранировать там. - person Joey   schedule 25.08.2009+
, что я должен поставить перед ним, чтобы избежать его? - person william   schedule 01.03.2012start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
работает, потому что PowerShell удаляет кавычки - person phuclv   schedule 19.05.2017