단어 목록의 각 단어에 문자열을 추가하고 새 단어 목록을 변수에 할당하는 방법은 무엇입니까?

MapInfoNewbie

이것은 사소한 질문처럼 보이지만 이에 대한 우아한 해결책을 찾지 못했습니다.

환경 변수에 할당 된 단어 목록이 있습니다 A. 환경 변수에 할당 된 새 단어 목록을 얻기 위해 b문자열 값이 단어 목록의 각 단어와 연결되어야하는 또 다른 변수 가 있습니다 .AC

이것은 지금까지 가지고있는 코드입니다.

@echo off
set A=test batch
set b=ing

for %%a in (%A%) do (
    set C=%%a%b%
)

echo %C%
Pause

명령 줄 echo %C%이 출력되어야 testing batching하지만이 코드를 사용한 출력은 단지 batching.

변수 bA할당 된 새 단어 목록을 얻기 위해 변수의 단어 목록에서 각 단어에 변수의 문자열 값을 추가하는 방법은 C무엇입니까?

Mofi

명령 프롬프트에서 실행할 때 명령 SET 출력에 대한 도움말은 지연된 환경 변수 확장 을 사용하는시기와 방법에 대한 문제의 코드와 유사한 IFFOR 예제 에 대해 설명합니다 .set /?

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "A=test batch"
set "b=ing"
set "C="

for %%I in (%A%) do set "C=!C! %%I%b%"

rem Remove the space character at beginning.
set "C=%C:~1%"
echo %C%

endlocal
pause

!위의 코드에서 모든 문자열은 지연된 확장 환경 변수 참조의 시작 / 끝으로 해석 set "b=ing!"되어 네 번째 줄에서 사용 하거나 set "A=!test! batch"세 번째 줄에서 사용하면 더 나빠질 수 있으므로 잘못된 처리가 발생 합니다.

지연된 환경 변수 확장의 사용을 피하는 또 다른 솔루션이 있으며 그 이유는 하나 이상의 느낌표가 포함 된 문자열에서도 작동합니다.

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "A=test batch"
set "b=ing"
set "C="

for %%I in (%A%) do call set "C=%%C%% %%I%b%"

rem Remove the space character at beginning.
set "C=%C:~1%"
echo %C%

endlocal
pause

환경 변수 C로 참조되는 %%결과 양쪽에 대한 명령의 실행 전에 다음에 Windows 명령 프로세서에 의해 처리 될 명령 행 FOR :

  for %I in (test batch) do call set "C=%C% %Iing"

명령은 CALL의 하나 개 이상의 처리 결과 set "C=%C% %Iing"명령의 실행 전에 SET가 있는 %C%환경 변수의 현재 값에 의해 대체된다 C.

또한보십시오:

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관