Как избежать амперсандов в пакетном файле (или из командной строки Windows), чтобы использовать команду start
для открытых веб-страниц с амперсандами в URL-адресе?Как избежать амперсандов в пакетных файлах?
Двойные кавычки не будут работать с start
; вместо этого запускается новое окно командной строки .
Обновление 1: Решение Ваэля Даллула работает. Кроме того, если имеют URL-кодированные символы (например, пробел кодируется как % 20) в URL-адресе и , он находится в пакетном файле, тогда «%» должен быть , закодированным как «%%». В этом примере это не так.
Пример из командной строки (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.
Я редактировал ответ belugabob так, чтобы он должен работать. Это просто причуда в 'start', которая приводит к отказу аргумента аргумента, если применить его без мысли. И в целом я считаю, что включение аргумента в кавычки проще и менее подвержено ошибкам, чем к побегу каждого персонажа, который нуждается в побеге там. – Joey
А как насчет плюса '+' что я должен поставить перед тем, чтобы избежать его? – william
В PowerShell «start» http://www.google.com/search?client=opera&rls=ru&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8 «' работает, потому что [PowerShell лишит кавычки] (https : //superuser.com/a/1208974/241386) –