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

Показать сообщение отдельно

Аватара для gora

Ушёл из жизни


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

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


Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
:: Ключи запуска скрипта:
:: Ключ "Del" : Нет записи - ни чего не делает, есть запись - удаляет ее
:: Ключ "Add" : Нет записи - добавляет, есть запись - ни чего не делает
:: Без ключей (или с любыми другими ключами) - работает в триггерном режиме: Нет записи - добавляет, есть запись - удаляет ее

:: Добавляемый путь. Можно использовать переменные среды, но в реестр будет добавлен абсолютный путь (с переменными в реестре у меня не работает почему-то...).
Set InstPath=%ProgramFiles%\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 && Goto _Del

If /I %~1#==Del# Pause>Nul & Exit
Echo Путь отсутствует. Добавляем путь %InstPath%
Reg Add %sw% /v Path /t %type% /d "%curpath%;%InstPath%" /f
:: Утилита nircmdc позволяет применить новое значение %Path% без перезагрузки компьютера, если не требуется - закомментировать строку
nircmdc sysrefresh environment
Pause>Nul
Exit

:_Del
If /I %~1#==Add# Pause>Nul & Exit
Echo Путь уже есть. Удаляем путь %InstPath%
Reg Add %sw% /v Path /t %type% /d "!curpath:;%InstPath%=!" /f
:: Утилита nircmdc позволяет применить новое значение %Path% без перезагрузки компьютера, если не требуется - закомментировать строку
nircmdc sysrefresh environment
Pause>Nul
Exit

Последний раз редактировалось gora, 07-02-2012 в 11:44.

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

Отправлено: 14:27, 06-02-2012 | #57