파이썬을 설치하다 보면, path에 추가해야 하는 경우가 있는데, 하다보면 중복 추가가 되는 경우가 있다.
이를 해결하기 위한 배치파일이다.
path.txt에 기존 경로와 변경될 경로를 모두 백업하는 기능도 있음.
@echo off
setlocal enabledelayedexpansion:: PATH 백업 파일 이름 고정
set “backupFile=path.txt”:: 현재 PATH 환경 변수 가져오기
set “originalPath=%PATH%”:: PATH 백업: 첫 번째 줄에 변경 전 경로 저장
echo Backing up current PATH to “%backupFile%”
echo %originalPath% > “%backupFile%”
if %errorlevel% neq 0 (
echo Failed to backup PATH. Exiting.
pause
exit /b 1
)echo PATH successfully backed up to “%backupFile%”.
:: 중복 제거를 위한 초기화
set “newPath=”
set “tempPath=%originalPath%”
set “pathChanged=0”:remove_duplicate
:: 첫 번째 경로 추출
for /f “tokens=1* delims=;” %%a in (“%tempPath%”) do (
set “currentPath=%%~a”
set “tempPath=%%b”
):: 현재 경로가 비어 있으면 종료
if not defined currentPath goto :finalize:: 현재 경로가 이미 newPath에 포함되어 있는지 확인
if defined newPath (
echo !newPath! | findstr /i /x /c:”!currentPath!” >nul
if not errorlevel 1 (
goto :next
)
):: 중복이 아니면 newPath에 추가
if “!newPath!”==”” (
set “newPath=!currentPath!”
) else (
set “newPath=!newPath!;!currentPath!”
set “pathChanged=1”
):next
:: tempPath가 비어 있으면 종료
if “!tempPath!” neq “” (
goto :remove_duplicate
):finalize
:: 중복 제거된 PATH 출력
echo Original PATH:
echo %originalPath%if “!pathChanged!”==”0” (
echo.
echo No duplicates found. PATH is already clean.
echo %originalPath% >> “%backupFile%”
pause
exit /b 0
)echo.
echo Cleaned PATH:
echo !newPath!:: PATH 백업: 두 번째 줄에 변경 후 경로 저장
echo !newPath! >> “%backupFile%”:: PATH 환경 변수 업데이트
setx PATH “!newPath!” >nul
if %errorlevel% neq 0 (
echo Failed to update PATH. Exiting.
pause
exit /b 1
)echo.
echo PATH has been updated successfully.:: 재부팅 안내 메시지
echo.
echo Note: To apply the changes system-wide, please restart your computer or open a new Command Prompt session.
pause