Код:
![Выделить весь код](images/misc/selectcode.png)
@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