Добавление каталога в переменную среды PATH в Windows

Мы используем только один файл конфигурации (web.config / app.config), но добавляем специальный раздел к файлу, который содержит настройки для всех сред.

разделы LOCAL, DEV, QA, PRODUCTION, каждая из которых содержит ключи конфигурации, относящиеся к этой среде, в наших конфигурационных файлах.

Что делает всю эту работу сборкой с именем xxx.Environment, на которую ссылаются во всех наших приложений (winforms и webforms), которые сообщают приложению, в какой среде он работает.

Узел xxx.Environment читает одну строку информации из machine.config данного устройства, которая сообщает ему, что это на DEV, QA и т. д. Эта запись присутствует на всех наших рабочих станциях и серверах.

Надеюсь, что это поможет.

463
задан MultiplyByZer0 13 October 2018 в 19:40
поделиться

4 ответа

Поздно на вечеринке - но удобно, если вы уже находитесь в каталоге, который хотите добавить в PATH.

set PATH=%PATH%;%CD%

редактировать: согласно комментарию - работает со стандартным Windows cmd, но не в powershell.

Для powershell эквивалент %CD% равен [System.Environment]::CurrentDirectory

23
ответ дан nclord 13 October 2018 в 19:40
поделиться

Лучшей альтернативой Панели управления является использование этой бесплатной программы от sourceforge под названием Pathenator:

https://sourceforge.net/projects/pathenator/

Тем не менее, он работает только для систем с Dot.Net 4.0 или выше, таких как Windows 7,8 или 10.

0
ответ дан Bill Moore 13 October 2018 в 19:40
поделиться

В этот век PowerShell я бы редактировал PATH следующим образом:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

Чтобы задать переменную для всех пользователей в масштабе машины, последняя строка должна выглядеть следующим образом:

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

В сценарии PowerShell вы можете проверить наличие вашего C:\xampp\php перед добавлением в PATH (в случае, если он был добавлен ранее). Вы можете обернуть его в условное выражение if.

Итак, все вместе:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
37
ответ дан Ifedi Okonkwo 13 October 2018 в 19:40
поделиться

Столь тривиальный, как это может быть, я имел к Windows перезапуска, когда сталкивающийся с этой проблемой.

я запускаю Windows 7 x64. Я сделал ручное обновление системной переменной ПУТИ. Это работало хорошо, если я выполняю cmd.exe из меню статистики. Но если я ввожу "cmd" в строке поиска Windows Explorer, это, кажется, загружает ПУТЬ откуда-либо, который не имел моих ручных изменений.

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

0
ответ дан 22 November 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: