2008-12-08 2 views
4

Есть ли способ программно, через командный файл (или сценарий powershell), поместить все папки в c:\Program Files в системную переменную PATH? Я зависим от командной строки и очень хочу просто запустить программу из командной строки.Путь системы DOS

Да, я ревную к Linux-оболочкам.

ответ

6

Переходя в «C: \ Program Files» в качестве параметра в этот пакетный файл:

@echo off 

FOR /D %%G IN (%1\*) DO PATH "%%G";%path% 
+0

Можете ли вы сказать «DLL Hell»? – 2008-12-08 17:36:12

+0

Или «зияющая дыра безопасности?» См. Мой комментарий к ответу Роба Уильяма для более ... – 2008-12-08 17:41:07

5

Сделать это очень вероятно, чтобы сломать ваш компьютер, в смысле вызова DLL Hell. Когда вы вызываете каждый исполняемый файл, ОС будет просматривать каждый каталог в PATH, чтобы найти каждую DLL или даже EXE, на которые ссылается этот исполняемый файл. Вполне вероятно, что ОС найдет неправильные, поскольку вы добавите больше каталогов в PATH.

Итак, лучше всего избегать увеличения PATH и даже уменьшить его. Вместо явных зависимостей сделайте их явными.

Вместо этого, я рекомендую этот подход:

  1. Создать каталог bin в вашей домашней директории пользователя
  2. Добавить этот bin каталог для вашего пользователя PATH переменной
  3. Создание сценария для Windows CMD в каталоге bin для каждого приложения, которое вы хотите вызвать из командной строки (то же имя, что и исполняемый файл, который вы набираете)
  4. В каждом скрипте вызывается SetLocal, добавьте приложение установки каталога (под %ProgramFiles%) к PATH, затем вызвать исполняемый файл с аргументами из командной строки
  5. Удалите соответствующий каталог из PATH, так что этот сценарий становится единственным способом для вызова исполняемого файла

 Смежные вопросы

  • Нет связанных вопросов^_^