У меня есть приложение Windows, которое мне нужно вызвать с помощью ярлыка на рабочем столе и некоторых параметров командной строки.
Я делал это тысячи раз, но этот немного другой. Вместо использования обычного параметра командной строки , такого как -e 12345
или -example 12345
, используется этот @12345
(начиная с @
символа).
Ярлыкам Windows не нравится, когда этот параметр идет сразу после имени исполняемого файла, и он просто удаляет все. Я не знаю почему.
Например:
c:\example\example.exe @12345 -e9876
в качестве «цели» при сохранении удаляет все параметры и оставляет c:\example\example.exe
в качестве цели.
Но c:\example\example.exe -e9876 @12345
работает просто отлично. Это сохраняет и проверяет, и все хорошо.
Однако мне нужно, чтобы @
параметр был первым в команде. Помимо выполнения команды, например, оборачивания команды в пакетный файл и вызова пакета, как сделать так, чтобы @
символ был первым параметром командной строки в ярлыке Windows?
.lnk
файлы на самом деле будут другими. (Протестировано с целью в виде пакетного файла, который просто повторяет переданные параметры.)Ответы:
Кто знал? ... Windows, по-видимому, рассматривает
@
символ как разделитель. Команды Windows будут интерпретировать только первый элемент команды ... поэтому он эффективно усекает остальные. Очевидно, вы можете переопределить поведение, указав^
перед ним символ экранирования .т.е.
c:\example\example.exe ^@12345 -e9876
источник
$
и%
символы, которые могут вызвать другие проблемы. Вы можете избежать тех, кто использует тот же^
символ. Вы также можете избежать побега, сделав,^^
как вы могли ожидать.