Меня сводит с ума тупо простая проблема, которая поглощает мое время. Я просто хочу добавить строки, разделенные запятой, но запятая не добавляется. Ниже приведен фрагмент моего командного файла:
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
)
После запуска этого скрипта при выводе эхом %MisingParams%
ожидаемое значение равно SwitchURL,TrustStore
, но оно просто печатает
SwitchURLTrustStore
.
D:\deleteme>echo %MissingParams%
SwitchURLTrustStore
Для отладки, когда я ввел некоторые операторы echo в командный файл, результаты были еще более странными:
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
У кого-нибудь есть идеи? Это разочаровывает меня без конца.