문제

CMD 쉘을 망치기 위해 무엇을 했습니까? Windows XP Pro, CMD 창을 열고 다음을 수행하십시오.

C:\>set tt = name

C:\>set tt
tt = name

C:\>echo %tt%
%tt%

C:\>echo %time%
14:13:28.67

에코 명령은 어떤 이유로 작동하지 않습니다. 내장 변수를 잘 반영 할 수 있습니다. 다른 컴퓨터에서 시도해 보았고 예상대로 작동합니다.

도움이 되었습니까?

해결책

그만큼 set 명령은 공간을 차지하지 않습니다. 적절한 구문은 다음과 같습니다.

set tt=name

예에서 수행 한 것은 환경 변수를 설정하는 것입니다. tt<space>. 이를 염두에두고 시도해 볼 수 있습니다.

echo %tt%

그리고 당신의 출력을보십시오.

다른 팁

평등 사이에 공간이없는 변수를 설정해 보셨습니까? (set tt = name)

여기에서 가장 많이 투자 된 답변은 다음과 같이 주장합니다.

"그만큼 set 명령은 공간을 차지하지 않습니다. "

그러나 그것은 정확하지 않습니다 %tt % 변수는 실제로 작동합니다. 설정 및 참조 할 수 있습니다. (그것에도 불구하고 ~이다 혼란.)

재현 된 문제 :

실제로, 내 win7에서 :

C:\>set os
OS=Windows_NT

C:\>set tt = name
C:\>set tt2= name
C:\>set tt3=name
C:\>set tt
tt = name
tt2= name
tt3=name

나는 시도하고 얻었다 :

C:\>echo "%os%"
"Windows_NT"

C:\>echo "%tt3%"
"name"
C:\>echo "%tt2%"
" name"
C:\>echo "%tt%"
"%tt%"

해결 된 사례 :

직관적으로 예상되는 변수 %tt% 설정되지 않았습니다. 하지만 %tt % 대신 설정됩니다.

C:\>echo "%tt %"
" name"

더욱이, 값의 끝에 공간이 있으면 set tt4 = name :

C:\>echo "%tt4 %"
" name "

결론 :

그만큼 set 명령은 그렇지 않습니다 trim():

  • "="이전의 공간이 var_name.
  • "="이후의 공간이 var_value.
  • 끝의 공간 var_value 그것에 포함되어 있습니다.

반면에:

  • 시작시 공간 var_name 포함되지 않으며, 이는 일반적으로 명령 줄 인수에 대해 다소 정상입니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top