![]() |
Добавления значения к уже существующей системной переменной
Всем привет. Хочу чтобы у меня одно значение дописавалось к уже существующей переменной, например системная переменная Path, которая имеет значение C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Python26\;%SystemRoot%\system32;.................... т.д и т.п и нужно добавить значение C:\ProgramFiles(x86)\Autodesk\AutoCAD 2014\ (чтобы другие не удалялись) где в просторах нашел но мне кажется его поправить и убрать все лишнее. Если кому не сложно можете показать или убрать в этом коде что надо что не надо.За ранее спасибо.
Код:
rem какой путь нужно дописать в переменную Path |
|
Существуют некоторые опасения в использовании команды "SETX" в данном случае: "Исправить переменную PATH - Batch (CMD_BAT) - CyberForum.ru". Но подтвердить или опровергнуть их не могу:
|
Я поэкспериментировал ;).
Сразу не соглашусь с: Цитата:
И это неверное утверждение: Цитата:
Проблема, как я теперь вижу, совсем в другом: как получить простым способом текущее значение «Machine» PATH, т.е. из HKLM? Переменная окружения PATH нам не гожа — она ведь представляет собой слияние обеих переменных PATH — из Machine (HKLM) и User (HKCU) разделов. Т.е., либо мы опять возвращаемся к «reg.exe» с его различным выводом в разных версиях ОС, либо… понимаем, что пора переходить на WSH/PoSH ;). Пометил предыдущий пост, как некорректный. Во всяком случае, пока некорректный. |
Цитата:
Код:
> echo %path% | sed "s/;/\n/g" |
Цитата:
|
извините быть может я тут многих не понял. но суть тут не в переменной Path . цель моя просто дописывать (дополнять) через точку с запятой любые значения переменной и в любой переменной будь это path или blalbla и т.д и т.п . может мне кто предложит поменьше код или проще есть вариант. или ваще оставить как есть!!
|
Цитата:
На WSH: Код:
Option Explicit Цитата:
|
termitt,
Код:
@echo off |
2Foreigner:
1. Нужен HKLM, а не HKCU. 2. В HKCU может и не быть PATH. 3. Опять-таки, разные разделители в разных ОС у «reg.exe»; в старых ОС нет параметра «-f», а есть «/f». 4. Во второй раз будет два «C:\test», в третий — три. И т.д. |
Цитата:
Для "FOR" и символ табуляции является разделителем по умолчанию: Код:
for /f "tokens=1-3" %%i in ("A B C") do @echo %%i %%j %%k |
Georgio, значит, я ошибся.
|
|
Цитата:
|
termitt, Скажи конкретный ключ. У меня приведенный батник работает.
|
Foreigner, я в этом не силен. слегка не понял..
|
termitt, В какой существующий ключ реестра необходимо дописать значение? Попробуй такой вариант с проверкой на наличие ключа:
Код:
@echo off |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment вот сюда должна записать то есть hklm
|
termitt, Ну так подставьте свои значения.
|
Foreigner,
Код:
@echo off |
Цитата:
Сами же говорили чуть ранее Цитата:
Либо перезагрузить компьютер Код:
@echo off |
Foreigner, хмм... дома сработала. сделал запуск от имени администратора. спасибо!!! завтра попробую на работе)
|
Foreigner, да да все работает спасибо. а можно же сделать что смотрел на эту переменную проверил чтобы не было дублирования?
|
Цитата:
Код:
Set InstPath=%SystemDrive%\Program Files\7-Zip |
gora, да проверил дублируется создает второй раз, если запустить еще раз батник.
|
termitt, какие-то религиозные соображения не позволяют пользовать WSH?!
|
Iska, неее хотелось бы только командами batch
|
Iska, и хватит навязывать мне тут свой whs!
|
|
Время: 03:51. |
Время: 03:51.
© OSzone.net 2001-