Содержимое батника:
Код:
Код: Выделить всё
@Echo Off
SetLocal EnableDelayedExpansion
Set InstPath=%SystemDrive%\My_Program
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
Reg Add %sw% /v Path /t %type% /d "%curpath%;%InstPath%" /f
nircmdc sysrefresh environment
Exit
:_Del
If /I %~1#==Add# Pause>Nul & Exit
Reg Add %sw% /v Path /t %type% /d "!curpath:;%InstPath%=!" /f
nircmdc sysrefresh environment
ExitВсё прекрасно отрабатывает, но во время деинсталляции ненадолго появляется консольное окно (насколько понимаю, из-за команды: Echo "%curpath%" | Find /I "%InstPath%" >Nul && Goto _Del[/i] ). Недостаток чисто косметический, но убрать хотелось бы (желательно, не ломая рабочую конструкцию).
