I have scripted SetPath.bat which accomplishes the following tasks:

1. Adds the specified folder to your path, if it is not already present.

2. Creates the folder, if it is missing.

NOTE: The new PATH will NOT be active until the computer is restarted. 

NOTE: You can use workstation.bat to run SetPath.bat on all the workstations in your domain.


SetPath NewFolder

where NewFolder is the fully qualified new folder path.


SetPath "C:\Program Files\My Stuff"

SetPath D:\utility

NOTE: If the NewFolder string already exists, it will not be added. If D:\utilityManager already exists in the PATH, then D:\utility will NOT be appended.

NOTE: The NewFolder tree can NOT be more than 8 branches deep.

SetPath.bat uses Reg.exe from the Windows 2000 Support Tools.

SetPath.bat contains:

@Echo Off
if \{%1\} EQU \{\} goto syntax
set folder=%1
set folder=%folder:"=%#
set folder=%folder:/#=%
set folder=%folder:#=%
set drive=%folder:~0,2%
set string=%folder:~3,256%
for /f "Tokens=1-8 Delims=\" %%i in ('@echo %string%') do call :parse "%%i" "%%j" "%%k" "%%l" "%%m" "%%n" "%%o" "%%p"
goto continue
@echo Syntax: SetPath NewFolderPath
goto :end
if %1 EQU "" goto :EOF
if exist %1 goto next
md %1
cd %1
goto parse
Set KEY="HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
Set prevpath=
Set newpath=
For /F "tokens=2,*" %%i in ('reg.exe Query %KEY% /v Path ^|findstr.exe /r /i /C:"Path.*REG"') Do @Set prevpath=%%j
If Not Defined prevpath @Echo Failed to find the path using reg.exe. & goto :end
Set newpath=%prevpath%;%folder%
Set newpath=%newpath:;;=;%
Echo %prevpath%|findstr.exe /i /C:"%folder%" >NUL
If %ErrorLevel% NEQ 0 reg.exe ADD %KEY% /v PATH /t REG_EXPAND_SZ /d "%newpath%" /f