Я знаю, что это довольно устарело, но это может быть полезно для тех, кто опаздывает на вечеринку. (РЕДАКТИРОВАТЬ: обновлено, поскольку это все еще получает трафик, и @Goozak указал в комментариях, что мой первоначальный анализ выборки также был неверным.)
Я вытащил это из примера кода в вашей ссылке:
IF !%1==! GOTO VIEWDATA
REM IF NO COMMAND-LINE ARG...
FIND "%1" C:\BOZO\BOOKLIST.TXT
GOTO EXIT0
REM PRINT LINE WITH STRING MATCH, THEN EXIT.
:VIEWDATA
TYPE C:\BOZO\BOOKLIST.TXT | MORE
REM SHOW ENTIRE FILE, 1 PAGE AT A TIME.
:EXIT0
!%1==!
- это просто идиоматическое использование ==
, предназначенное для проверки того, что вещь слева, которая содержит вашу переменную, отличается от вещи справа, которая не делает. !
в этом случае является просто символом-заполнителем. Это может быть что угодно. Если %1
имеет содержимое, тогда равенство будет ложным, если нет, вы просто будете сравнивать !
с !
, и оно будет истинным.
!==!
не является оператором, поэтому написание "asdf" !==! "fdas"
довольно бессмысленно.
Предложение использовать if not "asdf" == "fdas"
- определенно правильный путь.