Добавить переменную среды в качестве аргумента запуска (Windows)

334
Joseph Kreifels II

Допустим, у меня есть программа myProgram.exe. Я создаю ярлык и отправляю его на рабочий стол.

Теперь я щелкаю правой кнопкой мыши по ярлыку и захожу в свойства. Я добавляю аргумент "-ldir% cd%" к цели.

Проблема в том, что% cd% никогда не вычисляется, он входит в программу как "% cd%" в буквальном смысле. Разве невозможно передать переменные в качестве аргументов?

0

1 ответ на вопрос

0
Joseph Kreifels II

Похоже, я уже все делаю правильно. Если я перехожу в% windir%, он работает нормально.

Я предполагаю, что переменная CD никогда не устанавливается без помощи командной строки.

Я полагаю, что единственным решением для моей конкретной проблемы является использование пакетного файла вместо .lnk (ярлык).

РЕДАКТИРОВАТЬ : Решение

Я обнаружил, что вы можете просто запустить cmd.exe и передать туда exe и аргументы.

Если у пользователей есть пробелы (я ненавижу пробелы), вы должны заключить весь аргумент для cmd.exe в двойные кавычки, а также отдельные элементы, например, так

C: \ Windows \ System32 \ cmd.exe / c "" C: \ Users \\ Путь к Exe \ myProgram.exe "-ldir"% cd% ""

См .: https://ss64.com/nt/cmd.html.

C: \ Windows \ System32 \ cmd.exe / c "C: \ Users \\\ myProgram.exe "-ldir% cd% подходит близко, но не работает, если у пользователя есть пробел в имени каталога, поэтому это не может быть гарантией. Оборачивание% cd% в двойные кавычки может привести к сбою системы или что-то Joseph Kreifels II 5 лет назад 0
Решаемые. C: \ Windows \ System32 \ cmd.exe / c "" C: \ Users \\\ myProgram.exe "-ldir"% cd% "" См .: https://ss64.com/nt/cmd.html Joseph Kreifels II 5 лет назад 0