|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Добавление пути(ей) в системные переменные (path) с помощью cmd-файла |
|
|
CMD/BAT - [решено] Добавление пути(ей) в системные переменные (path) с помощью cmd-файла
|
Новый участник Сообщения: 1 |
Добрый день!
Возникла такая задача. Подскажите, как реализовать сие. Необходимо с помощью cmd-файла добавить в (переменные среды-системные переменные) в строку (path) путь (возможно несколько путей или сетевые путь(и)). Они ,как я помню, разделяются с помощью ;. Я попытался через cmd-файл: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %\\server\folder\folder1\% Но она заменяет уже существующий path. А нужно лишь добавить. Заранее благодарю за помощь. |
|
Отправлено: 11:32, 25-12-2007 |
Сообщения: 25151
|
Профиль | Сайт | Отправить PM | Цитировать
Источник |
------- Отправлено: 11:36, 25-12-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Не нашёл здесь на сайте поэтому напишу сюда, вдруг кому ещё пригодится.
Вобщем проблема была в том что этот скрипт на windows 7 не отрабатывал, пытался его подправить но ничего не получилось, пришлось искать что-то похожее на VBscript и править его, в итоге вот скрипт работает и на ХР и на 7. Проверяет есть ли уже данное значение в переменной Path и если нету то дописывает: Dim ExistingPath, NewPath, PathElement, PathExists, OldPath Set oShell = WScript.CreateObject("WScript.Shell") Set oEnv = oShell.Environment("SYSTEM") ' Строчка/папка которую надо добавить у меня это %Program Files% PathToAdd = "%Program Files%" OldPath = Split(oENV("path"), ";", -1, vbTextCompare) PathExists = False For Each PathElement In OldPath If StrComp(PathElement, PathToAdd, vbTextCompare) = 0 Then PathExists = True Exit For End If Next If Not PathExists Then ExistingPath = oEnv("PATH") ' добавляем нашу строчку у меня это %Program Files% NewPath = ExistingPath & ";" & "%Program Files%" oEnv("PATH") = NewPath End If |
Отправлено: 10:22, 08-11-2010 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата LITBe:
@Echo Off rem какой путь нужно дописать в переменную Path Set InstPath=%ProgramFiles%\7-Zip 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, то дополняем ее Echo "%curpath%" | Find /I "%InstPath%" >Nul || Reg Add %sw% /v Path /t REG_EXPAND_SZ /d "%curpath%;%InstPath%" /f |
|
Отправлено: 22:18, 08-11-2010 | #4 |
Старожил Сообщения: 194
|
Профиль | Отправить PM | Цитировать gora, не могли бы Вы модифицировать cmd, таким образом, чтобы можно было добавить сразу 3 пути в path.
Не очень охота запускать cmd три раза с разными путями. Заранее спасибо. |
|
Отправлено: 16:37, 26-11-2011 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Fresh96:
@Echo Off rem список путей, которые нужно дописать в переменную Path For %%a In ( "%ProgramFiles%\7-Zip" "%ProgramFiles%\EmEditor" "%ProgramFiles%\WinRAR" ) Do Call :_addPath %%a Exit :_addPath 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 "%~1" >Nul && GoTo :EOF Reg Add %sw% /v Path /t %type% /d "%curpath%;%~1" /f GoTo :EOF |
|
Последний раз редактировалось gora, 05-08-2012 в 15:20. Отправлено: 17:18, 26-11-2011 | #6 |
Старожил Сообщения: 207
|
Профиль | Отправить PM | Цитировать 1. В win7 есть команда setx
2. Как в WinXP сделать, чтобы новый путь появился в окружении (он появляется в реестре, в свойствах компьютера, но не в самом окружении) без перезагрузки компьютера? |
------- Отправлено: 23:40, 18-06-2012 | #7 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Вы сами ответили на свой вопрос – скопировать на ХР файл setx.exe
|
Отправлено: 00:01, 19-06-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 04:02, 19-06-2012 | #9 |
Старожил Сообщения: 410
|
Профиль | Отправить PM | Цитировать gora, это работает, только комментарий тоже в Path добавляет .
|
Отправлено: 14:51, 05-08-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Системные переменные windows в VB.NET | ProgrammerPC | Программирование и базы данных | 1 | 29-11-2009 02:22 | |
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами | Oleg48 | Скриптовые языки администрирования Windows | 2 | 18-11-2009 11:08 | |
CMD/BAT - помогите создать сетевое подключение с помощью cmd-файла | Oleg48 | Скриптовые языки администрирования Windows | 4 | 18-10-2009 11:24 | |
[решено] Знатокам cmd. Составные переменные?!! | Spooner | Microsoft Windows NT/2000/2003 | 1 | 14-05-2009 08:34 | |
Переменные среды и пути ярлыков | Igor99999 | Microsoft Windows 2000/XP | 0 | 22-05-2007 16:39 |
|