[batch-file] 배치 파일에서 변수 정의 및 사용

배치 파일에서 변수를 정의하고 사용하려고합니다. 간단해야합니다.

@echo off

set location = "bob"
echo We're working with "%location%"

내가 얻는 결과는 다음과 같습니다.

We're working with ""

무슨 일이야? 변수가 에코되지 않는 이유는 무엇입니까?



답변

앞의 공백 =은 이름의 일부로 해석되고 그 뒤의 공백과 인용 부호는 값의 일부로 해석됩니다. 따라서 생성 한 변수는로 참조 할 수 있습니다 %location %. 그것이 원하는 것이 아니라면, 정의에서 여분의 공간을 제거하십시오.


답변

공간이 중요합니다. 'location '
값으로 이름이 지정된 변수를 작성했습니다
' "bob"'.참고-작은 따옴표를 묶어 공간의 위치를 ​​표시했습니다.

당신의 가치에 따옴표를 원한다면, 코드는 다음과 같아야합니다

set location="bob"

따옴표를 원하지 않으면 코드는 다음과 같아야합니다.

set location=bob

아니면 더 나은

set "location=bob"

마지막 구문은 부주의 한 후행 공백이 값에 들어가는 것을 방지하고 & |등의 특수 문자로부터 보호합니다 .


답변

입력 location.bat

@echo off
cls

set /p "location"="bob"
echo We're working with %location%
pause

산출

We're working with bob

(실수 한 실수 : space" ")


답변