윈도우즈 배치 파일 변수에서 하위 문자열을 가져오고 싶을 때는 %변수명:~시작위치,길이% 와 같은 형식을 사용한다.

c:\> help set
...
    %PATH:~10,5%

은(는) PATH 환경 변수를 확장한 다음 확장된 결과의 11(10 오프세트)번째
문자에서 시작한 5 문자만 사용합니다. 길이를 지정하지 않으면 기본값을
변수 값의 나머지로 지정합니다. 두(오프세트 또는 길이) 수 모두 음수이면,
사용한 수는 오프세트 또는 지정한 길이에 추가된 환경 변수 값의
길이입니다.

    %PATH:~-10%

은(는) PATH 변수의 마지막 10 문자를 추출합니다.

    %PATH:~0,-2%

은(는) PATH 변수의 2 문자만 제외한 모든 문자를 추출합니다.

명령줄에서 help set 을 입력하면 자세한 사용법을 알 수 있다.

@echo off

for /f "delims=" %%i in (list.txt) do call :lbl_echo %%i

goto :eof

:lbl_echo
set element=%*
set start_ch=%element:~0,1%

if "%start_ch%"=="#" (
	echo skip : %element%
) else (
	echo echo : %element%
)

goto :eof

예를 들어 list.txt 파일을 읽어 라인별로 처리하고 싶은데 첫번째 문자열이 # 이면 무시하고 싶으면 위와 같은 배치파일을 작성할 수 있다. %element:~0,1% 같은 식으로 첫번째 문자열을 가져와 비교해서 처리하면 된다.

728x90

+ Recent posts