Ich habe eine Windows-Anwendung, die ich mit einer Desktopverknüpfung und einigen Befehlszeilenparametern aufrufen muss.
Ich habe das schon tausend Mal gemacht, aber das hier ist ein bisschen anders. Anstelle eines normalen Befehlszeilenparameters wie -e 12345
oder -example 12345
wird dieser verwendet @12345
(beginnend mit dem @
Symbol).
Windows-Verknüpfungen mögen diesen Parameter nicht, der unmittelbar nach dem Namen der ausführbaren Datei steht, und er entfernt einfach alles. Ich weiß nicht warum.
Beispielsweise:
c:\example\example.exe @12345 -e9876
Wenn Sie als "Ziel" speichern, werden alle Parameter entfernt und c:\example\example.exe
das Ziel bleibt erhalten .
Funktioniert aber c:\example\example.exe -e9876 @12345
prima. Es speichert und validiert und alles ist gut.
Allerdings muss der @
Parameter der erste im Befehl sein. Wie kann ich ein @
Symbol als ersten Befehlszeilenparameter für eine Windows-Verknüpfung festlegen, abgesehen davon, dass der Befehl in eine Batchdatei eingeschlossen und der Batch aufgerufen wird?
.lnk
Dateien tatsächlich unterschiedlich sind. (Getestet mit dem Ziel als Batch-Datei, die die übergebenen Parameter einfach wiedergibt.)Antworten:
Wer wusste? ... Windows behandelt das
@
Zeichen anscheinend als Trennzeichen. Windows-Befehle interpretieren nur das erste Element im Befehl, sodass der Rest effektiv abgeschnitten wird. Anscheinend können Sie das Verhalten außer Kraft setzen, indem Sie ein^
davor angeben, um dem Symbol zu entkommen .dh
c:\example\example.exe ^@12345 -e9876
quelle
$
und%
Zeichen, die andere Probleme verursachen können. Sie können die mit dem gleichen^
Charakter entkommen . Sie können der Flucht auch entkommen, indem Sie das tun,^^
was Sie erwarten.