기 타 배치파일 질문좀 올려봅니다;
2022.09.13 11:52
안녕하세요~~ 배치파일 응용하다 도저히 안풀리기에..질문을 드립니다.
데이터파일에서 각 라인별로 구분지은 뒤 그중 한 변수값에서 특정부분을 잘라서 그 자른부분을 변수에 넣고 싶은데요..
이게 그냥
set aa=12345
set aa2=%aa:0,2%
echo %aa2%
이렇게 하면 aa2 값이 잘 나오는데요 [12]
아래처럼 응용을 하면 안됩니다;;
for /f "tokens=1-6 delims=;" %%a in (%item%) do ( // 데이터를 입력받아 ; 로 구분 뒤 2번째 데이터 (2021-06-07 00:02:19) 를 뽑아
echo %%b // 두번째데이터값 이건 값이 잘 나옵니다 예시: 2021-06-07 00:02:19
set kk1=%%b
set kk2=%kk1:~0,4%
@echo 이게 %%b 이고 %kk1% 이고 %kk2% 이다 // [이게 2021-06-07 00:02:19 이고 이고 이다] 라고 출력
이렇게 하면 kk1 kk2값 등이 출력 안되는 이유가 궁금합니다
일중이라.. 바로바로 확인을 못합니다... 미안합니다..그리고 감사합니다~~ ^^;;;;
for, if 구문은 한번에(한줄)로 해석됩니다. 그래서 한줄내에서 동적으로 변하는 변수 처리를 위해서
setlocal enabledelayedexpansion 설정 후 !변수! 형태로 사용해야 합니다.
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-6 delims=;" %%a in (%item%) do (
echo %%b
set kk1=%%b
set kk2=!kk1:~0,4!
echo 이게 %%b 이고 !kk1! 이고 !kk2! 이다)
endlocal
참고; https://kkamagistory.tistory.com/881