根據this,!==!
是不等於字符串運算符。 嘗試它,我得到:批量不等式(不等式)運算符
C:\> if "asdf" !==! "fdas" echo asdf
!==! was unexpected at this time.
我在做什麼錯?
根據this,!==!
是不等於字符串運算符。 嘗試它,我得到:批量不等式(不等式)運算符
C:\> if "asdf" !==! "fdas" echo asdf
!==! was unexpected at this time.
我在做什麼錯?
嘗試
if NOT "asdf" == "fdas" echo asdf
嘗試:
if not "asdf" == "fdas" echo asdf
這對我的作品在Windows XP(我得到同樣的錯誤,你對你發佈的代碼)。
改爲使用NEQ。
if "asdf" NEQ "fdas" echo asdf
我知道這已經過時了,但對於那些遲到的人來說,這仍然是有用的。 (編輯:自該更新的靜止變流和@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"
的建議絕對是您的選擇。
這需要打開命令擴展(它們默認爲2000+以上,但可以在系統範圍內關閉或作爲cmd.exe的參數)通常情況下,您應該用setlocal打開它們,但是如果不是平等的測試,只是使用「如果不是」,它可以回溯到良好的舊DOS天 – Anders