据此,!==!是不等于字符串操作符。 试了一下,我明白了:
C:\> if "asdf" !==! "fdas" echo asdf
!==! was unexpected at this time.
我做错了什么?
据此,!==!是不等于字符串操作符。 试了一下,我明白了:
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"绝对是正确的方法。