Comment puis-je échapper aux esperluettes dans un fichier batch (ou à partir de la ligne de commande de Windows) afin d'utiliser la fonction d'échappement de l'ordinateur ? ligne de commande Windows) afin d'utiliser la fonction start
pour pour ouvrir les pages web dont l'URL contient des esperluettes ?
Les guillemets ne fonctionnent 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. En outre, si il y a des caractères codés dans l'URL (par exemple, l'espace est codé en tant que %20) dans l'URL et il est dans un fichier batch alors '%' doit être être codé en tant que "%%". 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
ouvert dans le navigateur par défaut et ces erreurs dans la fenêtre de la 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 bit SP2.
1 votes
J'ai modifié la réponse de belugabob pour qu'elle fonctionne maintenant. C'est juste une bizarrerie dans
start
qui fait que la citation de l'argument échoue si elle est appliquée sans réflexion. Et dans l'ensemble, je pense qu'il est plus facile et moins risqué de mettre l'argument entre guillemets que d'échapper chaque caractère qui doit l'être.1 votes
Et le signe plus ?
+
que dois-je mettre devant pour l'échapper ?0 votes
Dans PowerShell
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
fonctionne car PowerShell supprimera les guillemets