批次不等式(不等式)运算符
据此, !==!
是不相等的string运算符。 尝试一下,我得到:
C:\> if "asdf" !==! "fdas" echo asdf !==! was unexpected at this time.
我究竟做错了什么?
尝试
if NOT "asdf" == "fdas" echo asdf
改用NEQ。
if "asdf" NEQ "fdas" echo asdf
我知道这已经过时了,但对于那些迟到的人来说,这仍然是有用的。 (编辑:更新,因为这仍然得到stream量和@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==!
只是一个惯用的==
旨在validation左边的东西,包含你的variables,不同于右边的东西,那不是。 那!
在这种情况下只是一个字符占位符。 这可能是任何事情。 如果%1
有内容,那么平等将是错误的,如果不是,你只是比较!
来!
这将是真实的。
!==!
不是操作员,所以写"asdf" !==! "fdas"
"asdf" !==! "fdas"
是非常荒谬的。
build议使用, if not "asdf" == "fdas"
肯定是要走的路。
尝试:
if not "asdf" == "fdas" echo asdf
这在Windows XP上适用于我(我发现和你发布的代码一样的错误)。