144 votes

Échapper aux guillemets doubles dans le paramètre

Sous Unix, je pouvais exécuter myscript '"test"' et j'aurais "test" .

Dans Windows cmd Je reçois 'test' .

Comment puis-je passer des guillemets doubles en tant que paramètre ? J'aimerais savoir comment faire cela manuellement à partir d'un fichier cmd pour que je n'aie pas à écrire un programme pour tester mon programme.

3 votes

Cela fait des années que je n'ai pas touché à une machine Windows, mais le caractère d'échappement standard (barre oblique inversée) ne fonctionne-t-il pas ? myscript \"test\"

0 votes

Non. Je reçois \test\. Je soupçonne que c'est parce que Windows utilise \ au lieu de /, de sorte que la barre oblique inversée ne peut pas être utilisée comme échappatoire. Mais je ne sais pas vraiment.

1 votes

Je ne sais pas quelle version de Windows vous utilisez, mais le système "\" fonctionne bien sous Windows 7 (Ultimate). Il y a une autre façon de le faire, en traitant les guillemets multiples (c'est-à-dire que """ devient " ou quelque chose comme ça), mais je n'arrive pas à savoir quand et comment cela fonctionne.

2voto

modiX Points 397

Peut-être êtes-vous venu ici parce que vous vous demandez comment échapper aux guillemets dont vous avez besoin dans la commande que vous transmettez à /c en cmd.exe ? Et bien tu ne le fais pas :

CMD /c "MKDIR "foo bar""

exécutera

MKDIR "foo bar"

ce qui est vraiment un comportement auquel je ne m'attendais pas au premier regard. Une incohérence à première vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X