Comment puis-je échapper aux esperluettes dans un fichier de commandes (ou à partir de la ligne de commande Windows) afin d'utiliser la start
commande pour ouvrir des pages Web avec des esperluettes dans l'URL?
Les guillemets doubles ne fonctionneront pas avec start
; cela démarre une nouvelle fenêtre de ligne de commande à la place.
Mise à jour 1 : la solution de Wael Dalloul fonctionne. De plus, s'il y a des caractères encodés URL (par exemple, l'espace est encodé en% 20) dans l'URL et qu'elle se trouve dans un fichier batch, alors «%» doit être encodé en «%%». Ce n'est pas le cas dans l'exemple.
Exemple, à partir de la ligne de commande ( CMD.EXE
):
start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8
aura pour résultat
http://www.google.com/search?client=opera
étant ouvert dans le navigateur par défaut et ces erreurs dans la fenêtre de ligne de commande:
'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.
Plate-forme: Windows XP 64 bits SP2.
+
que dois-je mettre devant pour y échapper?
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
fonctionne parce que PowerShell supprimera les citations
start
laquelle la citation de l'argument échoue si elle est appliquée sans réfléchir. Et dans l'ensemble, je pense que mettre l'argument entre guillemets est plus facile et moins sujet aux erreurs que d'échapper à chaque caractère qui doit s'échapper.