Як уникнути амперсандів у пакетному файлі (або з командного рядка Windows), щоб використовувати start
команду для відкриття веб-сторінок з розширеннями в URL?
Подвійні котирування не працюватимуть start
; це запускає нове вікно командного рядка.
Оновлення 1 : рішення Ваеля Даллоула працює. Крім того, якщо в 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 "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
працює, оскільки PowerShell
start
якій цитування аргументу виходить з ладу, якщо застосовуватися без думки. І в цілому, я думаю, що вкладати аргументи в лапки простіше і менше схильних до помилок, ніж уникнути кожного персонажа, який потребує втечі туди.