Как избежать команд при сравнении строк в командном файле? - PullRequest
0 голосов
/ 03 января 2019

Я заметил, что сравнение строк в командном файле не работает должным образом, если сравнивать со словами типа «IF» и «DO».

IF "DO" == "DO" (
    ECHO YES
)

Выше работает нормально, но не полезно.

SET stringDO=DO
IF %stringDO% == "DO" (
    ECHO YES
) ELSE ( 
    ECHO NO
)

Когда мы используем переменную, результатом для приведенного выше примера будет «НЕТ»

Странно, сравнение двух переменных работает нормально.

SET stringDO=DO
SET compare=DO
IF %stringDO% == %compare% (
    ECHO YES
)

Итак, мой вопрос: я делаю что-то не так или это намеченное поведение?

Есть ли другой способ избежать командных слов при сравнении строк?

1 Ответ

0 голосов
/ 03 января 2019

Код вопроса if сравнение оценивается по порядку:

  1. IF "DO" == "DO"
  2. IF DO == "DO"
  3. IF DO == DO

Двойные кавычки включены в сравнение.DO не равно "DO".

SET stringDO=DO
IF "%stringDO%" == "DO" (
    ECHO YES
) ELSE ( 
    ECHO NO
)

приводит к YES.

...