Windows Echo 명령은 사용자 설정 변수를 반영 할 수 없습니다
-
19-09-2019 - |
문제
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
포함되지 않으며, 이는 일반적으로 명령 줄 인수에 대해 다소 정상입니다.
제휴하지 않습니다 StackOverflow