Saya memiliki aplikasi Windows yang perlu saya panggil dengan pintasan desktop dan beberapa parameter baris perintah.
Saya sudah melakukan ini ribuan kali, tetapi yang ini sedikit berbeda. Alih-alih menggunakan parameter baris perintah normal seperti -e 12345
atau -example 12345
, ini menggunakan @12345
(dimulai dengan @
simbol).
Cara pintas Windows tidak suka parameter ini datang segera setelah nama yang dapat dieksekusi, dan hanya menghapus semuanya. Saya tidak tahu kenapa.
Sebagai contoh:
c:\example\example.exe @12345 -e9876
sebagai "target", saat menyimpan, menghapus semua parameter dan meninggalkan hanya c:\example\example.exe
sebagai target.
Tapi c:\example\example.exe -e9876 @12345
berfungsi dengan baik. Ini menghemat, dan memvalidasi, dan semuanya baik.
Namun saya perlu @
parameter untuk menjadi yang pertama di perintah. Selain melakukan sesuatu seperti membungkus perintah dalam file batch dan memanggil batch, bagaimana saya bisa memiliki @
simbol menjadi parameter baris perintah pertama pada pintasan Windows?
.lnk
file sebenarnya berbeda. (Diuji dengan target sebagai file batch yang hanya menggemakan param yang dilewati.)Jawaban:
Siapa yang tahu? ... Windows tampaknya memperlakukan
@
karakter sebagai pembatas. Perintah Windows hanya akan menafsirkan elemen pertama dalam perintah ... sehingga secara efektif memotong sisanya. Rupanya, Anda dapat mengganti perilaku dengan memasok^
sebelum untuk melarikan diri dari simbol.yaitu
c:\example\example.exe ^@12345 -e9876
sumber
$
dan%
karakter yang dapat menyebabkan masalah lain. Anda dapat melarikan diri dari mereka yang menggunakan^
karakter yang sama . Anda juga dapat melarikan diri dari pelarian dengan melakukan^^
seperti yang Anda harapkan.