Tengo una aplicación de Windows que necesito invocar con un acceso directo de escritorio y algunos parámetros de línea de comandos.
Lo he hecho miles de veces, pero este es un poco diferente. En lugar de usar un parámetro de línea de comando normal como -e 12345
o -example 12345
, éste usa @12345
(comenzando con el @
símbolo).
A los atajos de Windows no les gusta que este parámetro aparezca inmediatamente después del nombre del ejecutable, y simplemente elimina todo. No se porque.
Por ejemplo:
c:\example\example.exe @12345 -e9876
como el "objetivo", al guardar, elimina todos los parámetros y se va c:\example\example.exe
como el objetivo.
Pero c:\example\example.exe -e9876 @12345
funciona bien. Guarda y valida, y todo está bien.
Sin embargo , necesito que el @
parámetro sea el primero en el comando. Además de hacer algo como envolver el comando en un archivo por lotes y llamar al lote, ¿cómo puedo hacer que un @
símbolo sea el primer parámetro de línea de comando en un acceso directo de Windows?
.lnk
archivos sean realmente diferentes. (Probado con el objetivo como un archivo por lotes que simplemente hace eco de los parámetros pasados).Respuestas:
¿Quien sabe? ... Windows aparentemente trata al
@
personaje como un delimitador. Los comandos de Windows solo interpretarán el primer elemento del comando ... por lo que efectivamente trunca el resto. Aparentemente, puede anular el comportamiento al proporcionar un^
antes para escapar del símbolo.es decir
c:\example\example.exe ^@12345 -e9876
fuente
$
y%
que pueden causar otros problemas. Puedes escapar de aquellos que usan el mismo^
personaje. También puede escapar del escape haciendo^^
lo que podría esperar.