@echo off setlocal enabledelayedexpansion for /f "tokens=2 delims=:" %%C in ('chcp') do set "OLDCP=%%C" set "OLDCP=%OLDCP: =%" chcp 949 >nul 2>&1 title 전역 지침 일괄 적용 v0.3.01 set "SRC=%~dp0" if "%SRC:~-1%"=="\" set "SRC=%SRC:~0,-1%" set "DRY=" set "LIST=" for %%A in (%1 %2) do ( if /i "%%~A"=="/L" (set "DRY=/L") else (if not "%%~A"=="" set "LIST=%%~A") ) if not defined LIST set "LIST=%SRC%\대상목록.txt" if not exist "%LIST%" ( echo [오류] 대상 목록 파일이 없습니다: %LIST% goto :END ) if not exist "%SRC%\지침적용.bat" ( echo [오류] 지침적용.bat 을 찾을 수 없습니다. goto :END ) echo. echo ======================================================== echo 전역 지침 일괄 적용 v0.3.01 echo ======================================================== echo 원본 : %SRC% echo 목록 : %LIST% if defined DRY echo 모드 : 미리보기 ^(실제로 쓰지 않음^) echo. echo 적용 대상 echo -------------------------------------------------- set "N=0" for /f "usebackq eol=# tokens=* delims=" %%P in ("%LIST%") do ( set /a N+=1 if exist "%%~P\" (echo [!N!] %%~P) else (echo [!N!] %%~P ^<-- 폴더 없음) ) echo -------------------------------------------------- echo 총 !N!개 echo. echo [A] 지침/어댑터/스킬/HMCMkit 자산 =^> 덮어씀 echo [B] OPEN_미해결목록, state.json 등 =^> 이미 있으면 보존 echo [C] 기존 DOC 산출물, prompt 로그 =^> 건드리지 않음 ^(삭제 없음^) echo 적용 전 각 프로젝트의 context-migration, prompt 를 backup 에 보관 echo. set /p "OK=위 !N!개 폴더에 적용할까요? (Y/N) " if /i not "%OK%"=="Y" goto :ABORT echo. set "DONE=0" set "SKIP=0" for /f "usebackq eol=# tokens=* delims=" %%P in ("%LIST%") do call :ONE "%%~P" echo. echo -------------------------------------------------------- echo 일괄 적용 완료 적용 !DONE!개 / 건너뜀 !SKIP!개 if defined DRY echo ^(미리보기 모드였습니다. 실제 적용은 /L 없이 다시 실행^) echo. echo 확인 : 각 프로젝트의 .claude\taskexecutionagent.md 상단 버전이 v0.3.01 인지 echo 복구 : 각 프로젝트의 backup\^<날짜^>_지침적용전\ 에 context-migration, prompt 보관 echo -------------------------------------------------------- goto :END :ONE if "%~1"=="" goto :eof if not exist "%~1\" ( echo [건너뜀] %~1 ^(폴더 없음^) set /a SKIP+=1 goto :eof ) echo. echo ^>^> %~1 call "%SRC%\지침적용.bat" "%~1" /Y %DRY% set /a DONE+=1 goto :eof :ABORT echo 취소했습니다. :END echo. pause if defined OLDCP chcp %OLDCP% >nul 2>&1 endlocal