J'ai une application Windows que je dois invoquer avec un raccourci sur le bureau et certains paramètres de ligne de commande.
Je l'ai fait des milliers de fois, mais celui-ci est un peu différent. Au lieu d'utiliser un paramètre de ligne de commande normal comme -e 12345
ou -example 12345
, celui-ci utilise @12345
(en commençant par le @
symbole).
Les raccourcis Windows n'aiment pas que ce paramètre apparaisse immédiatement après le nom de l'exécutable, et il supprime simplement tout. Je ne sais pas pourquoi.
Par exemple:
c:\example\example.exe @12345 -e9876
comme "cible", lors de la sauvegarde, supprime tous les paramètres et reste c:\example\example.exe
comme la cible.
Mais c:\example\example.exe -e9876 @12345
fonctionne très bien. Il enregistre et valide, et tout va bien.
Cependant, j'ai besoin que le @
paramètre soit le premier de la commande. En plus de faire quelque chose comme encapsuler la commande dans un fichier de commandes et appeler le lot, comment puis-je avoir un @
symbole comme premier paramètre de ligne de commande sur un raccourci Windows?
.lnk
fichiers sont en fait différents. (Testé avec la cible en tant que fichier de commandes qui fait simplement écho aux paramètres transmis.)Réponses:
Qui savait? ... Windows traite apparemment le
@
personnage comme un délimiteur. Les commandes Windows interpréteront uniquement le premier élément de la commande ... afin de tronquer efficacement le reste. Apparemment, vous pouvez remplacer le comportement en fournissant un^
avant pour échapper au symbole.c'est à dire
c:\example\example.exe ^@12345 -e9876
la source
$
et%
qui peuvent causer d'autres problèmes. Vous pouvez échapper à ceux qui utilisent le même^
personnage. Vous pouvez également échapper à l'évasion en faisant ce^^
que vous attendez.