답변:
앞의 공백 =
은 이름의 일부로 해석되고 그 뒤의 공백과 인용 부호는 값의 일부로 해석됩니다. 따라서 생성 한 변수는로 참조 할 수 있습니다 %location %
. 그것이 원하는 것이 아니라면, 정의에서 여분의 공간을 제거하십시오.
alias x = y
* nix 토지 와 는 반대로 ?
x = y
하십니까?
공간이 중요합니다. '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
및 " "
)
set /p
사용자에게 프롬프트하고 지정된 변수에 답변을 저장합니다. 예 :set /p name="What is your name? " & echo Hello, %name%.
set /p "varname"="text"
이 잘못되었습니다 location"
(후행 인용 부호와 함께) 라는 이름의 변수를 만듭니다 . 이어야합니다 set /p location="bob"
. 그러나
=
이 이름의 일부로 해석되면 변수 를 로 참조 할 수 없으며 로 참조%location%
해야합니다%location %
. 오타입니까?