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 पर मेरे लिए काम करता (मैं एक ही त्रुटि आप के रूप में कोड आप पोस्ट के लिए मिलता है)।
इसके बजाय एनईक्यू का उपयोग करें।
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"
का उपयोग करने का सुझाव निश्चित रूप से जाने का तरीका है।
पर वापस जाता है धन्यवाद [jatrim] (http://stackoverflow.com/users/866045) .. उत्तर के लिए खोज करने वालों के लिए सबसे निश्चित रूप से सहायक है, बल्कि सवाल फिर से पूछने से। यह स्टैक एक्सचेंज लॉक की तरह नहीं है, प्रश्नों की उम्र के कारण उत्तर देने/टिप्पणी करने की क्षमता से, इसलिए सोचें कि यह पूरी तरह से स्वीकार्य है। – user66001
''1' का उपयोग यहां'% 1' खाली होने पर किया जाता है, इस प्रकार परीक्षण '! ==!' होता है, जो सत्य है। आप इसके बजाय '% 1। ==।' का उपयोग कर सकते हैं (लगभग कोई भी चरित्र करेगा) - उद्देश्य यह सुनिश्चित करना है कि समानता परीक्षण के दोनों तरफ परीक्षण करने के लिए _something_ है। '! ==! 'नोटेशन निश्चित रूप से ** नहीं ** एक बराबर चिह्न नहीं है। 'अगर नहीं ...' के साथ बेहतर छड़ी। – Goozak
इसके लिए कमांड एक्सटेंशन चालू होने की आवश्यकता है (वे 2000+ पर डिफ़ॉल्ट रूप से हैं लेकिन cmd.exe पर पैरामीटर के रूप में या सिस्टम को बंद कर दिया जा सकता है) आम तौर पर आपको उन्हें सेटलोकल के साथ चालू करना चाहिए, लेकिन यदि सरल नहीं है बराबर परीक्षण, बस "अगर नहीं" का उपयोग करें, यह अच्छे पुराने डॉस दिनों – Anders