1 @echo off 2 setlocal enabledelayedexpansion 3 4 ::使用方法: 5 :: "C:\WINDOWS" 6 :: "C:\jar" 7 SET x="C:\jar" 8 Call :InPath %x% 9 goto :eof 10 11 12 :InPath 13 SET LocalPathCopy=%PATH% 14 :: whether exist %x% 15 IF "%LocalPathCopy%" == "" GOTO OVER 16 GOTO WHILE 17 18 :: iterate path variable and check if the first parameter of InPath exists 19 :WHILE 20 FOR /f "delims=; tokens=1,*" %%I IN ("%LocalPathCopy%") DO ( 21 set LocalPathCopy=%%J 22 ::echo "%%~I" == "%1" --------- "%LocalPathCopy%" 23 IF /I "%%~I" == %1 ( 24 SET Result=1 25 SET x=%%~I 26 echo %x% exists 27 GOTO OVER 28 ) 29 GOTO WHILE 30 ) 31 32 :: remove " 33 SET x=%x:"=% 34 35 IF "!Result!" == "" ( 36 echo "%x%" dont exists so we'll add it to path 37 :: you can use SETX command correctly if it exists 38 :: because the max length of your environment variable cant be great than 1024 39 :: SETX PATH "%Path%;%x%" 40 SET "Path=%Path%;%x%" 41 echo !PATH! 42 GOTO OVER 43 ) 44 45 pause. 46 47 :OVER 48 PAUSE & GOTO :EOF