
START로 시작하고 END로 끝나는 가변 길이 문자열이 구분 기호로 있습니다.
START
와 사이의 문자열을 추출하고 싶습니다 END
.
나는 노력했다
SET _result=%String:~6,-4%
ECHO %_result%
내가 원하는 대로 처음 5자는 제거되지만 마지막 3자는 제거되지 않습니다.
_result=STARTblahblahblahEND
다음과 같이 출력이 나온다고 가정해 보겠습니다 .blahblahblahEND
내가 원하는 것은:
blahblahblah
답변1
하위 문자열 옵션을 사용할 수 있습니다. 아래처럼 작동할까요?
SET TEXT=STARTblahblahblahEND
SET SUBSTRING=%TEXT:~5,-3%
echo %SUBSTRING%
답변2
대상 문자열이 여러 줄이 아닌 이상 작동합니다.
@echo off
setlocal EnableDelayedExpansion
set "str="
set "string=blablablaSTART123ENDblablabla"
set string=!string:START=^
!
set string=!string:END=^
!
FOR /F skip^=1eol^= %%S in ("!string!") do if NOT DEFINED str set "str=%%S"
echo(!str!
어떻게 작동하나요?
^
%= EXPANDS TO NOTHING =%
%= EXPANDS TO NOTHING =%
단일로 확장됩니다 LF
.
skip^=1eol^=
비활성화eol