Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавления значения к уже существующей системной переменной

Ответить
Настройки темы
CMD/BAT - Добавления значения к уже существующей системной переменной

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всем привет. Хочу чтобы у меня одно значение дописавалось к уже существующей переменной, например системная переменная Path, которая имеет значение C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Python26\;%SystemRoot%\system32;.................... т.д и т.п и нужно добавить значение C:\ProgramFiles(x86)\Autodesk\AutoCAD 2014\ (чтобы другие не удалялись) где в просторах нашел но мне кажется его поправить и убрать все лишнее. Если кому не сложно можете показать или убрать в этом коде что надо что не надо.За ранее спасибо.

Код: Выделить весь код
rem какой путь нужно дописать в переменную Path
Set InstPath=%ProgramFiles%\Autodesk\AutoCAD 2014\

Set sw="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Set w7=
rem проверка версии (Windows 7) установленной системы
Ver | Find "6.1" >Nul && Set w7=1
rem извлечение текущего содержимого переменной Path 
rem !ВАЖНО! - в кач-ве разделителя в первом цикле используется пробел, а во втором нужно указать 
rem только символ табуляции (ASCII-код символа после знака "равно" в выделенном фрагменте должен быть 09)
If Defined w7 (
	For /F "tokens=3* delims= " %%j In ('Reg Query %sw% /v Path') Do Set curPath=%%j %%k
) Else (
	For /F "tokens=3 delims=	" %%j In ('Reg Query %sw% /v Path') Do Set curPath=%%j
)
rem проверка наличия дописываемого значения в переменной Path (для исключения дублирования)
rem если дописываемого пути нет в переменной Path, то дополняем ее. Вообщем теперь в переменную Path он !допишет! значение C:\Program Files\Autodesk\AutoCAD 2014\
Echo "%curPath%" | Find /I "%InstPath%" >Nul || Reg Add %sw% /v Path /t REG_EXPAND_SZ /d "%curPath%;%InstPath%" /f
@pause

Отправлено: 10:08, 13-01-2015

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата termitt:
hklm\environment »
Вообще-то если hklm, то hklm\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Сами же говорили чуть ранее
Цитата termitt:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment вот сюда должна записать то есть hklm »
Проверить можно в regedit или в свойствах системы: Панель Управления > Система > Дополн. параметры системы > Переменные среды > Системные переменные > PATH

Либо перезагрузить компьютер

Код: Выделить весь код
@echo off
setlocal

set "key=hklm\System\CurrentControlSet\Control\Session Manager\Environment"
set "parameter=path"
set "value=%ProgramFiles%\Autodesk\AutoCAD 2014"

1>nul 2>&1 reg query "%key%" /v "%parameter%" || (

    reg add "%key%" /v "%parameter%" /t reg_sz /d "%value%"
    goto:eof

)

for /f "tokens=3*" %%i in ('reg query "%key%" /v "%parameter%"') do call:add %%i %%j
goto:eof

:add
reg add "%key%" /v "%parameter%" /d "%*;%value%" /f
Батник должен быть запущен с повышенными привилегиями (от Администратора)

Последний раз редактировалось Foreigner, 14-01-2015 в 15:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:00, 14-01-2015 | #21



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Foreigner, хмм... дома сработала. сделал запуск от имени администратора. спасибо!!! завтра попробую на работе)

Отправлено: 17:40, 14-01-2015 | #22


Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Foreigner, да да все работает спасибо. а можно же сделать что смотрел на эту переменную проверил чтобы не было дублирования?

Отправлено: 09:01, 15-01-2015 | #23


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата termitt:
проверил чтобы не было дублирования? »
Код: Выделить весь код
Set InstPath=%SystemDrive%\Program Files\7-Zip
Set sw="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
For /F "tokens=2*" %%j In ('Reg Query %sw% /v Path ^| Find /I "Path"') Do Set type=%%j& Set curpath=%%k
Echo "%curpath%" | Find /I "%InstPath%" >Nul && Exit
Reg Add %sw% /v Path /t %type% /d "%curpath%;%InstPath%" /f
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:05, 15-01-2015 | #24


Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


gora, да проверил дублируется создает второй раз, если запустить еще раз батник.

Отправлено: 13:27, 15-01-2015 | #25


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


termitt, какие-то религиозные соображения не позволяют пользовать WSH?!

Отправлено: 14:50, 15-01-2015 | #26


Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, неее хотелось бы только командами batch

Отправлено: 03:35, 16-01-2015 | #27


Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, и хватит навязывать мне тут свой whs!

Отправлено: 04:07, 16-01-2015 | #28


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата termitt:
Iska, неее хотелось бы только командами batch »
Ясно. Значит, таки религия.

Цитата termitt:
Iska, и хватит навязывать мне тут свой whs! »
Флаг Вам в руки.
И, да — он не мой.

Отправлено: 05:42, 16-01-2015 | #29



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавления значения к уже существующей системной переменной

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Без раскрытия системной переменной окружения janxp Скриптовые языки администрирования Windows 11 09-02-2014 06:35
CMD/BAT - Присвоение значения переменной starav Скриптовые языки администрирования Windows 1 30-05-2013 09:23
VBS/WHS/JS - Вывод значения переменной в сообщение la_vanille_ciel Программирование и базы данных 3 09-04-2008 11:55
Как изменить заголовок в уже существующей теме ? XPurple О сайте и форуме 8 13-04-2005 07:24
php деление значения строковой переменной Guest Вебмастеру 4 14-10-2004 17:12




 
Переход