set 명령이 & / && 바로 뒤에 나오는 명령에 영향을 주지 않는 이유는 무엇입니까?

set 명령이 & / && 바로 뒤에 나오는 명령에 영향을 주지 않는 이유는 무엇입니까?

시스템 변수를 사용하는 여러 명령이 있는데 다음과 같이 한 줄로 된 명령입니다.

set test="blah" && echo %test%

그러나 set 명령의 변수는 같은 줄의 명령에 대해 "설정"되지 않은 것으로 나타났습니다. 두 번째 명령을 다시 실행하면 업데이트된 변수를 읽을 수 있습니다. & 또는 &&를 사용할 수 있으며 효과는 동일합니다. 이 동작은 배치 파일과 명령 프롬프트에 배치하는 경우 모두 발생합니다.

또는 set다음 문에 영향을 주는 명령을 얻으려면 어떻게 해야 합니까 ?&&&

답변1

전체 명령줄이 한 번에 평가되므로 명령을 실행하기 전에 변수가 test확인되기 때문입니다 set.

쉬운 수정 방법은 명령을 배치 파일의 별도 줄에 배치하고 실행하는 것입니다.

관련 정보