|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавления значения к уже существующей системной переменной |
|
CMD/BAT - Добавления значения к уже существующей системной переменной
|
Новый участник Сообщения: 21 |
Всем привет. Хочу чтобы у меня одно значение дописавалось к уже существующей переменной, например системная переменная 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 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Для "FOR" и символ табуляции является разделителем по умолчанию: . |
|
Отправлено: 18:28, 13-01-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Georgio, значит, я ошибся.
|
Отправлено: 23:23, 13-01-2015 | #12 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось termitt, 14-01-2015 в 06:06. Отправлено: 03:18, 14-01-2015 | #13 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
Отправлено: 05:48, 14-01-2015 | #14 |
Ветеран Сообщения: 1758
|
termitt, Скажи конкретный ключ. У меня приведенный батник работает.
|
Отправлено: 07:11, 14-01-2015 | #15 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Foreigner, я в этом не силен. слегка не понял..
|
Отправлено: 08:12, 14-01-2015 | #16 |
Ветеран Сообщения: 1758
|
termitt, В какой существующий ключ реестра необходимо дописать значение? Попробуй такой вариант с проверкой на наличие ключа:
@echo off setlocal set "key=hkcu\environment" set "parameter=PATH" set "value=C:\Test" 1>nul 2>&1 reg query "%key%" /v "%parameter%" || ( reg add "%key%" /v "%parameter%" /d "%value%" goto:eof ) for /f "tokens=3*" %%i in ('reg query "%key%" /v "%parameter%"') do call:add %%i %%j :: shutdown /l (отлогин) для применения изменений goto:eof :add reg add "%key%" /v "%parameter%" /d "%*;%value%" /f |
Последний раз редактировалось Foreigner, 14-01-2015 в 08:52. Отправлено: 08:40, 14-01-2015 | #17 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment вот сюда должна записать то есть hklm
|
Отправлено: 08:57, 14-01-2015 | #18 |
Ветеран Сообщения: 1758
|
termitt, Ну так подставьте свои значения.
|
Отправлено: 09:04, 14-01-2015 | #19 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Foreigner,
@echo off setlocal set "key=hklm\environment" set "parameter=PATH" set "value=C:\Test" 1>nul 2>&1 reg query "%key%" /v "%parameter%" || ( reg add "%key%" /v "%parameter%" /d "%value%" goto:eof ) for /f "tokens=3*" %%i in ('reg query "%key%" /v "%parameter%"') do call:add %%i %%j :: shutdown /l (отлогин) для применения изменений goto:eof :add reg add "%key%" /v "%parameter%" /d "%*;%value%" /f |
Отправлено: 09:39, 14-01-2015 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|