Windows 배치 파일에서 두 구분 기호 사이의 문자열 일부를 추출하는 방법은 무엇입니까?

Windows 배치 파일에서 두 구분 기호 사이의 문자열 일부를 추출하는 방법은 무엇입니까?

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

관련 정보