Programing

배치 파일의 문자열 대체

crosscheck 2020. 9. 8. 07:29
반응형

배치 파일의 문자열 대체


다음 명령을 사용하여 배치 파일의 문자열을 바꿀 수 있습니다.

set str="jump over the chair"
set str=%str:chair=table%

이 선은 잘 작동하며 문자열 "의자 위로 점프"를 "테이블 위로 점프"로 변경합니다. 이제 문자열의 "chair"라는 단어를 변수로 바꾸고 싶은데 어떻게해야할지 모르겠습니다.

set word=table
set str="jump over the chair"
??

어떤 아이디어?


!를 사용할 수 있지만 ENABLEDELAYEDEXPANSION 스위치가 설정되어 있어야합니다.

setlocal ENABLEDELAYEDEXPANSION
set word=table
set str="jump over the chair"
set str=%str:chair=!word!%

다음과 같은 작은 트릭을 사용할 수 있습니다.

set word=table
set str="jump over the chair"
call set str=%%str:chair=%word%%%
echo %str%

call이, 변수 확장의 또 다른 레이어를 일으키는 것이 필요 원본 인용 할 수있게 %표시를하지만 모두가 결국 밖으로 작동합니다.


이것은 잘 작동합니다

@echo off    
set word=table    
set str=jump over the chair    
set rpl=%str:chair=%%word%    
echo %rpl%

참고 URL : https://stackoverflow.com/questions/2772456/string-replacement-in-batch-file

반응형