Меня сводит с ума глупо простая проблема, которая съедает мое время. Я просто хочу добавить строки, разделенные запятой, но запятая не добавляется. Ниже приведен фрагмент моего командного файла:
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
Для отладки, когда я ввел в пакетный файл некоторые операторы эха, результаты были еще более странными:
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
У кого-нибудь есть идеи? Это расстраивает меня до бесконечности.