Mam aplikację systemu Windows, którą muszę wywołać za pomocą skrótu na pulpicie i niektórych parametrów wiersza polecenia.
Robiłem to tysiące razy, ale ten jest nieco inny. Zamiast używać normalnego parametru wiersza polecenia, takiego jak -e 12345
lub -example 12345
, ten używa @12345
(zaczynając od @
symbolu).
Skróty systemu Windows nie lubią tego parametru pojawiającego się bezpośrednio po nazwie pliku wykonywalnego i po prostu usuwa wszystko. Nie wiem dlaczego.
Na przykład:
c:\example\example.exe @12345 -e9876
jako „cel” podczas zapisywania usuwa wszystkie parametry i pozostawia tak samo, c:\example\example.exe
jak cel.
Ale c:\example\example.exe -e9876 @12345
działa dobrze. Zapisuje i potwierdza, a wszystko jest dobrze.
Jednak muszę ten @
parametr, aby być pierwszym na komendzie. Oprócz robienia czegoś takiego jak zawijanie polecenia do pliku wsadowego i wywoływanie wsadu, jak mogę mieć @
symbol jako pierwszy parametr wiersza poleceń w skrócie Windows?
.lnk
pliki są różne. (Testowany z celem jako plik wsadowy, który po prostu odzwierciedla parametry przekazane.)Odpowiedzi:
Kto wiedział? ... Windows najwyraźniej traktuje
@
znak jako ogranicznik. Polecenia Windows zinterpretują tylko pierwszy element polecenia ... więc skutecznie obcina resztę. Najwyraźniej można zastąpić zachowanie, podając^
przed nim znak ucieczki od symbolu.to znaczy
c:\example\example.exe ^@12345 -e9876
źródło
$
i%
znakach, które mogą powodować inne problemy. Możesz uciec tym, którzy używają tej samej^
postaci. Możesz także uciec przed ucieczką, postępując^^
zgodnie z oczekiwaniami.