2012-04-16 13 views
8

मेरे पास नीचे कमांड लाइन फ़ाइल है। मुझे एक चर के खाली मूल्य की जांच करने की आवश्यकता है। मैं किसी कमांड लाइन तर्क की आपूर्ति नहीं कर रहा हूं।cmd फ़ाइल में खाली मान कैसे जांचें?

@echo off 
@set PASSWORD= 
@set PORT=9001 
@set command=START 
if %PASSWORD% NEQ() GOTO MyLabel 

:MyLabel 
@set command=%command% -p%PASSWORD% 

@set command=%command% -i%PORT% 
@echo %command% 

मैं ऐसे खाली कोष्ठकों (()), रिक्त स्ट्रिंग ("") के साथ तुलना के रूप में कई विकल्प की कोशिश की, लेकिन कुछ भी काम करने के लिए लगता है। यह मुझे निम्न आउटपुट देता है जब यह चलता है:

() इस समय अप्रत्याशित था।

मैं विंडोज 7 एक्स 32 का उपयोग कर रहा हूं। क्या कोई मदद कर सकता है?

उत्तर

9

निम्नलिखित यह करना चाहिए:

if [%PASSWORD%] NEQ [] GOTO MyLabel 

अधिक जानकारी के लिए, ss64.com देखते हैं।

+1

वाह! इसने एक जादू की तरह काम किया! धन्यवाद! – ParagJ

+0

आश्चर्यजनक रूप से, यह मेरे लिए काम नहीं करता है। 'अगर [% NO_SUCH_VAR%] NEQ [] गूंज खाली नहीं है 'वास्तव में" खाली नहीं "गूंजता है। चाहे चर खाली है, अपरिभाषित या परिभाषित और खाली नहीं है, परीक्षण हमेशा सत्य देता है। Cmd.exe का एक और अजीब व्यवहार अभी तक? – mivk

+0

@mivk कमांड लाइन और बैच फ़ाइल के व्यवहार अलग हैं ... –

10

चर के चारों ओर प्रतिशत संकेतों के बिना IF DEFINED variable का उपयोग करें।

XP (32 बिट) और Win7 x64 में परीक्षण किया गया:

SET PASSWORD= 
IF DEFINED PASSWORD (echo PASSWORD = %PASSWORD%) ELSE (echo PASSWORD is empty or undefined) 
IF DEFINED USERNAME (echo USERNAME = %USERNAME%) ELSE (echo USERNAME is empty or undefined) 
संबंधित मुद्दे