나는 내 시간을 먹어 치우는 어리석은 간단한 문제로 정신이 없습니다. 쉼표로 구분 된 문자열을 추가하려고하지만 쉼표가 추가되지 않습니다. 다음은 내 배치 파일 조각이다 : 나는 %MisingParams%
에코 때쉼표로 구분 된 문자열을 연결할 수 없습니다.
set MissingParams=
set SwitchURL=
set TrustStore=
if 0%SwitchURL%==0 (set MissingParams=SwitchURL)
if 0%TrustStore%==0 (
if not 0%MissingParams%==0 (
set MissingParams=%MissingParams%,
)
set MissingParams=%MissingParams%TrustStore
)
이 스크립트를 도망 한 후, 예상 값은 SwitchURL,TrustStore
이지만 단순히
SwitchURLTrustStore
을 인쇄합니다. 디버깅을위한
D:\deleteme>echo %MissingParams%
SwitchURLTrustStore
, 내가 배치 파일에서 일부 에코 문을 도입 할 때, 그 결과는 더욱 희한하다 : 나는 위의 스크립트를 실행하면
set MissingParams=
if 0%SwitchURL%==0 (set MissingParams=SwitchURL)
if 0%TrustStore%==0 (
if not 0%MissingParams%==0 (
echo MissingParams=%MissingParams%
set MissingParams=%MissingParams%,
echo MissingParams=%MissingParams%
)
set MissingParams=%MissingParams%TrustStore
echo MissingParams=%MissingParams%
)
그것은
MissingParams=SwitchURL
MissingParams=SwitchURL
MissingParams=SwitchURL
를 인쇄 명령 프롬프트에서 값을 반향 출력하면 이전과 같이 SwitchURLTrustStore
D:\deleteme>echo %MissingParams%
SwitchURLTrustStore
누구에게 아이디어가 있습니까? 이것은 끝까지 나를 좌절시키는 것입니다.
작동합니다. ! 변수는 무엇입니까! ? 나는 항상 % variable %를 사용했다. –
지연된 확장 스타일로 ** set /? **에서 설명했습니다. – jeb