В Windows действительно досадно, что если вы хотите запустить какую-либо стороннюю программу из командной строки, вы должны либо использовать ее полный путь, либо вручную добавить содержащий ее каталог в PATH .

Существует ли утилита, которая сканирует все записи в меню «Пуск» и создает символическую ссылку на каждый из исполняемых файлов в определенном каталоге, так что мне нужно только добавить этот один каталог в PATH?

2 ответа2

0

Я реализовал эту функциональность с помощью скрипта Python.

Это на удивление сложно сделать правильно, хотя:

  1. Ярлыки работают в оболочке (Run Dialog , двойной щелчок по файлу и т.д.), Но не в Cmd .

  2. Симлинки работают в Cmd , но не в оболочке.

  3. Жесткие ссылки работают в обоих случаях, но не могут пересекать границы раздела.

Я в конечном итоге с помощью ярлыков. В командной строке я должен набрать program.lnk для его работы, и это на Windows 7, он не работает в XP.

0

Во-первых, я не знаю утилиту для автоматизации этого процесса.

Аналогично вашему собственному ответу, вам нужно только создать ссылки в одном специальном каталоге и включить его в PATH . Но для того, чтобы он действительно работал в командной строке, в диалоговом окне запуска и при двойном щелчке, вам нужно использовать Batch-Scripts:

Для запуска файла D:\Inkscape\inkscape.exe

@ "D:\Inkscape\inkscape.exe"% *

Сохраните это в файле с именем inkscape.cmd в этом специальном каталоге. Тогда inkscpae доступен из командной строки или из диалогового окна запуска. Все аргументы переданы в исходный файл.

Это лучше всего подходит для программ CLI (да, inkscape имеет CLI), потому что процесс cmd.exe начинает запускать программу wantet и не завершается до завершения запущенной программы. Для программ с графическим интерфейсом лучше использовать:

@START "D:\Inkscape\inkscape.exe"% *

Затем процесс cmd.exe завершается после запуска программы. Все аргументы также переданы по конвейеру.

Я использую это для установки LaTeX на флэш-накопителе и для некоторых простых команд unix в windows (7/64; xp/32). И это хорошо работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .