|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 |
|
Ветеран Сообщения: 1759
|
termitt, Скажи конкретный ключ. У меня приведенный батник работает.
|
|
Отправлено: 07:11, 14-01-2015 | #15 |
|
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Foreigner, я в этом не силен. слегка не понял..
|
|
Отправлено: 08:12, 14-01-2015 | #16 |
|
Ветеран Сообщения: 1759
|
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 |
|
Ветеран Сообщения: 1759
|
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 | |
|