Como escapar do e comercial em um arquivo em lotes (ou na linha de comando do Windows) para usar o start
comando para abrir páginas da Web com e comercial no URL?
Aspas duplas não funcionarão start
; isso inicia uma nova janela de linha de comando.
Atualização 1 : A solução de Wael Dalloul funciona. Além disso, se houver caracteres codificados em URL (por exemplo, o espaço é codificado como% 20) no URL e ele estiver em um arquivo em lotes , '%' deverá ser codificado como '%%'. Este não é o caso no exemplo.
Exemplo, na linha de comando ( CMD.EXE
):
start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8
vai resultar em
http://www.google.com/search?client=opera
sendo aberto no navegador padrão e esses erros na janela da linha de comandos:
'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.
Plataforma: Windows XP SP2 de 64 bits.
+
o que devo colocar na frente para escapar dela?
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
funciona porque o PowerShell
start
qual causa falha na citação do argumento se aplicada sem pensar. E, no geral, acho que encerrar o argumento entre aspas é mais fácil e menos propenso a erros do que escapar a todos os caracteres que precisam escapar lá.