据此,!==!是不等于字符串操作符。 试了一下,我明白了:

C:\> if "asdf" !==! "fdas" echo asdf
!==! was unexpected at this time.

我做错了什么?


当前回答

Try

if NOT "asdf" == "fdas" echo asdf

其他回答

Try

if NOT "asdf" == "fdas" echo asdf

Try:

if not "asdf" == "fdas" echo asdf

这适用于我的Windows XP(我得到相同的错误,你张贴的代码)。

用NEQ代替。

if "asdf" NEQ "fdas" echo asdf

我发现最简单的方法是:

IF %ERRORLEVEL% NEQ 0 Echo An error was found

or

IF %ERRORLEVEL% GRT 0 goto error1

运算符!==!没有正确的值,这意味着它只用于知道变量是否被设置。

IF !%1==! GOTO main

我知道这已经很过时了,但这对那些晚到派对的人来说可能仍然有用。(编辑:更新,因为这仍然有流量,@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"绝对是正确的方法。