Ответ 1
Действительно хороший вопрос! Смущает ха?
На самом деле существует два разных синтаксических анализатора, используемых для анализа пакетных сценариев и команд командной строки.
Цитата из этот отличный ответ:
BatchLineParser
- Парсер внутри пакетных файлов, для строк или блоков
CmdLineParser
- Как иBatchLineParser
, но непосредственно в командной строке, работает разные
Ключевое различие заключается в первом этапе анализа, особенно в расширении %var%
:
В BatchLineParser
, если var
не существует, в CmdLineParser
ничего не будет заменено, если var
не определено, выражение не изменится.
Так почему же кто-то его проектировал? Я понятия не имею.