반응형
작동하지 않는 경우 내부 Windows 일괄 설정
이 펼치기를 사용할 때 (.bat 파일에서) :
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
나는 항상 얻는다 :
ECHO is on.
var2
가 실제로 설정 변수되지 않았 음본을 의미합니다 . 누구든지 이유를 이해하도록 도와 주시겠습니까?
var2가 설정 확장 echo %var2%
블록이 실행되기 전에 줄이 발생합니다.
현재 var2
비어 있습니다.
따라서 delayedExpansion 구문이 존재하고 !
대신 사용하며 구문 분석 시간이 아닌 실행 %
시간에 평가됩니다.
을 (를) 사용 !
하면 추가 설명 setlocal EnableDelayedExpansion
이 필요합니다.
setlocal EnableDelayedExpansion
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo !var2!
)
파티에 조금 나는 늦었지만이보기 조건을 처리하는 또 다른 방법은 if
이와 같이 외부 에서 프로세스를 계속하는 을 구석으로입니다.
set var1=true
if "%var1%"=="true" (
set var2=myvalue
)
echo %var2%
또는 goto
구문 사용
set var1=true
if "%var1%"=="true" (
set var2=myvalue
goto line10
) else (
goto line20
)
. . . . .
:line10
echo %var2%
. . . . .
:line20
이렇게하면 확장이 "제 시간에"발생하며 setlocal EnableDelayedExpansion
. 결론적으로, 펼쳐서 디자인을 다시 생각한다면 그렇게 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/9102422/windows-batch-set-inside-if-not-working
반응형
'IT' 카테고리의 다른 글
단일 벡터의 모든 요소가 같은지 테스트 (0) | 2020.09.16 |
---|---|
SVG 이미지를 확장하여 브라우저 창을 채우는 방법은 무엇입니까? (0) | 2020.09.16 |
Pandas DataFrame에서 열을 이동하는 방법 (0) | 2020.09.16 |
두 개의 다른 데이터베이스 테이블에 조인을 사용할 수 있습니까? (0) | 2020.09.16 |
Java와 같은 C #에 키워드가 있습니까? (0) | 2020.09.16 |