2009-09-14 11 views

उत्तर

374

कोशिश

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

17

प्रयास करें:

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

कि Windows XP पर मेरे लिए काम करता (मैं एक ही त्रुटि आप के रूप में कोड आप पोस्ट के लिए मिलता है)।

82

इसके बजाय एनईक्यू का उपयोग करें।

if "asdf" NEQ "fdas" echo asdf 
+29

इसके लिए कमांड एक्सटेंशन चालू होने की आवश्यकता है (वे 2000+ पर डिफ़ॉल्ट रूप से हैं लेकिन cmd.exe पर पैरामीटर के रूप में या सिस्टम को बंद कर दिया जा सकता है) आम तौर पर आपको उन्हें सेटलोकल के साथ चालू करना चाहिए, लेकिन यदि सरल नहीं है बराबर परीक्षण, बस "अगर नहीं" का उपयोग करें, यह अच्छे पुराने डॉस दिनों – Anders

25

मुझे पता है कि यह काफी पुराना है, लेकिन यह अभी भी पार्टी के आने वाले लोगों के लिए उपयोगी हो सकता है। (संपादित करें: इस के बाद से अद्यतन अभी भी यातायात हो जाता है और @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" का उपयोग करने का सुझाव निश्चित रूप से जाने का तरीका है।

+0

पर वापस जाता है धन्यवाद [jatrim] (http://stackoverflow.com/users/866045) .. उत्तर के लिए खोज करने वालों के लिए सबसे निश्चित रूप से सहायक है, बल्कि सवाल फिर से पूछने से। यह स्टैक एक्सचेंज लॉक की तरह नहीं है, प्रश्नों की उम्र के कारण उत्तर देने/टिप्पणी करने की क्षमता से, इसलिए सोचें कि यह पूरी तरह से स्वीकार्य है। – user66001

+4

''1' का उपयोग यहां'% 1' खाली होने पर किया जाता है, इस प्रकार परीक्षण '! ==!' होता है, जो सत्य है। आप इसके बजाय '% 1। ==।' का उपयोग कर सकते हैं (लगभग कोई भी चरित्र करेगा) - उद्देश्य यह सुनिश्चित करना है कि समानता परीक्षण के दोनों तरफ परीक्षण करने के लिए _something_ है। '! ==! 'नोटेशन निश्चित रूप से ** नहीं ** एक बराबर चिह्न नहीं है। 'अगर नहीं ...' के साथ बेहतर छड़ी। – Goozak