¿Cómo escapo los símbolos en un archivo por lotes (o desde la línea de comandos de Windows) para usar el start
comando para abrir páginas web con símbolos en la URL?
Las comillas dobles no funcionarán start
; Esto inicia una nueva ventana de línea de comandos.
Actualización 1 : la solución de Wael Dalloul funciona. Además, si hay caracteres codificados en URL (por ejemplo, el espacio está codificado como% 20) en la URL y está en un archivo por lotes, entonces '%' debe codificarse como '%%'. Este no es el caso en el ejemplo.
Ejemplo, desde la línea 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
resultará en
http://www.google.com/search?client=opera
se abre en el navegador predeterminado y estos errores en la ventana de línea de comando:
'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 64 bit SP2.
+
qué debo poner delante para escapar?
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
funciona porque PowerShell eliminará las citas
start
que hace que la cita del argumento falle si se aplica sin pensar. Y en general, creo que encerrar el argumento entre comillas es más fácil y menos propenso a errores que escapar de cada personaje que necesita escapar allí.