::.bat 기본 세팅 값
@echo off
@chcp 65001
set mypath=%~dp0
setx "Auto_INSTALL" -m "%mypath%
cls
cmd /k "%Auto_INSTALL%test2.bat"
test2.bat
::.bat 기본 세팅 값
@echo off
@chcp 65001
cls
:: 기초설치
:CHECKING
::refresh 경로
set mypath=%Auto_INSTALL%
:: 기초설치 확인
if "%mypath%" == "" (
cls
echo.
echo 설치파일 확인하고 있습니다.
echo 잠시만 기다려 주십시오.
echo 설치파일 등록중...
timeout 3
cls
::----------------------------------------------------------------
:: RefreshEnv.cmd
::
:: 레지스트리에서 환경 변수를 읽는 배치 파일 및
:: 세션 변수를 이 값으로 설정합니다.
::
:: 이 배치 파일을 사용하면 명령을 다시 로드할 필요가 없습니다.
:: 환경 변경 사항을 전파할 때마다 환경
::echo "RefreshEnv.cmd는 cmd.exe에서만 작동합니다. PowerShell의 refreshenv를 활용하려면 Chocolatey 프로필을 설치하세요."
echo | set /p dummy="Refreshing environment variables from registry for cmd.exe. Please wait..."
goto main
:: 레지스트리 키에서 하나의 환경 변수 설정
:SetFromReg
"%WinDir%\System32\Reg" QUERY "%~1" /v "%~2" > "%TEMP%\_envset.tmp" 2>NUL
for /f "usebackq skip=2 tokens=2,*" %%A IN ("%TEMP%\_envset.tmp") do (
echo/set "%~3=%%B"
)
goto :EOF
:: 레지스트리에서 환경 변수 목록 가져오기
:GetRegEnv
"%WinDir%\System32\Reg" QUERY "%~1" > "%TEMP%\_envget.tmp"
for /f "usebackq skip=2" %%A IN ("%TEMP%\_envget.tmp") do (
if /I not "%%~A"=="Path" (
call :SetFromReg "%~1" "%%~A" "%%~A"
)
)
goto :EOF
:main
echo/@echo off >"%TEMP%\_env.cmd"
:: 천천히 최종 파일 생성
call :GetRegEnv "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" >> "%TEMP%\_env.cmd"
call :GetRegEnv "HKCU\Environment">>"%TEMP%\_env.cmd" >> "%TEMP%\_env.cmd"
:: PATH에 대한 특별 처리 - 사용자와 시스템을 모두 혼합
call :SetFromReg "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" Path Path_HKLM >> "%TEMP%\_env.cmd"
call :SetFromReg "HKCU\Environment" Path Path_HKCU >> "%TEMP%\_env.cmd"
:: 주의: >> 리디렉션 기호 앞에 공백 문자를 삽입하지 마십시오.
echo/set "Path=%%Path_HKLM%%;%%Path_HKCU%%" >> "%TEMP%\_env.cmd"
:: 정리
del /f /q "%TEMP%\_envset.tmp" 2>nul
del /f /q "%TEMP%\_envget.tmp" 2>nul
:: 캡처 사용자 / 아키텍처
SET "OriginalUserName=%USERNAME%"
SET "OriginalArchitecture=%PROCESSOR_ARCHITECTURE%"
:: 이 변수를 설정합니다.
call "%TEMP%\_env.cmd"
:: 정리
del /f /q "%TEMP%\_env.cmd" 2>nul
:: 사용자 / 아키텍처 재설정
SET "USERNAME=%OriginalUserName%"
SET "PROCESSOR_ARCHITECTURE=%OriginalArchitecture%"
echo | set /p dummy="Finished."
echo .
goto :CHECKING
exit
) else (
echo.
echo 등록 성공!! ["%Auto_INSTALL%"]
echo 등록이 성공적으로 되었습니다!!
echo.
echo 계속 진행 하려면 아무키나 입력...
pause >nul
goto :DONE
)