2012-03-25 6 views
1

Я думаю, я не понимаю, как командная строка Windows оценивает равенство. У меня есть пакет, который выглядит так:Командная строка не распознает равенство

@echo off 
set test=12 
if (%test% EQU 12) echo true 
pause 

Это, как ни странно, не печатает истину. Может ли кто-нибудь сказать мне, почему это так?

ответ

6

Удалить скобки, и он будет работать:

@echo off 
set test=12 
if %test% EQU 12 echo true 
pause 

IF не использовать круглые скобки в условиях, просто запустите if /? и вы получите информацию о синтаксисе это.

+0

Ничего себе! Я не думал, что все будет так просто! Множество других языков, к которым я привык иметь круглые скобки вокруг этого условия. – LastStar007

+1

@ LastStar007: В этом случае в сравнении участвуют круглые скобки, т. Е. Вы фактически сравнивали (после оценки) '(от 12' до' 12) ', и эти два были, естественно, разными. –

Смежные вопросы