स्क्रिप्ट 1:
इनपुट ("Quotes.cmd निकालें" "यह एक परीक्षण है")
@ECHO OFF
REM Set "string" variable to "first" command line parameter
SET STRING=%1
REM Remove Quotes [Only Remove Quotes if NOT Null]
IF DEFINED STRING SET STRING=%STRING:"=%
REM IF %1 [or String] is NULL GOTO MyLabel
IF NOT DEFINED STRING GOTO MyLabel
REM OR IF "." equals "." GOTO MyLabel
IF "%STRING%." == "." GOTO MyLabel
REM GOTO End of File
GOTO :EOF
:MyLabel
ECHO Welcome!
PAUSE
आउटपुट (कोई भी नहीं है,% 1 रिक्त नहीं था, खाली, या NULL):
उपरोक्त स्क्रिप्ट 1 के साथ किसी भी पैरामीटर के बिना ("Quotes.cmd निकालें") चलाएँ
आउटपुट (% 1 रिक्त, रिक्त या NULL) है:
Welcome!
Press any key to continue . . .
नोट: यदि आप एक चर को अंदर सेट करते हैं IF ( ) ELSE ( )
स्टेटमेंट के करते हैं, तो यह "IF" स्टेटमेंट से बाहर निकलने के बाद तब तक DEFINED के लिए उपलब्ध नहीं होगा (जब तक कि "डिलेड वेरिएबल एक्सपेंशन" सक्षम न हो; एक बार एक्सीलैंशन मार्क का उपयोग करने में सक्षम हो! "" के स्थान पर "!" प्रतिशत "%" प्रतीक}।
उदाहरण के लिए:
स्क्रिप्ट 2:
इनपुट ("Quotes.cmd निकालें" "यह एक परीक्षण है")
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET STRING=%0
IF 1==1 (
SET STRING=%1
ECHO String in IF Statement='%STRING%'
ECHO String in IF Statement [delayed expansion]='!STRING!'
)
ECHO String out of IF Statement='%STRING%'
REM Remove Quotes [Only Remove Quotes if NOT Null]
IF DEFINED STRING SET STRING=%STRING:"=%
ECHO String without Quotes=%STRING%
REM IF %1 is NULL GOTO MyLabel
IF NOT DEFINED STRING GOTO MyLabel
REM GOTO End of File
GOTO :EOF
:MyLabel
ECHO Welcome!
ENDLOCAL
PAUSE
आउटपुट:
C:\Users\Test>"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd" "This is a Test"
String in IF Statement='"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd"'
String in IF Statement [delayed expansion]='"This is a Test"'
String out of IF Statement='"This is a Test"'
String without Quotes=This is a Test
C:\Users\Test>
नोट: यह स्ट्रिंग के अंदर से उद्धरण भी निकाल देगा।
उदाहरण के लिए (स्क्रिप्ट 1 या 2 का उपयोग करके): C: \ Users \ Test \ Documents \ Batch फ़ाइलें> "Quotes.cmd निकालें" "यह" एक "टेस्ट" है
आउटपुट (स्क्रिप्ट 2):
String in IF Statement='"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd"'
String in IF Statement [delayed expansion]='"This is "a" Test"'
String out of IF Statement='"This is "a" Test"'
String without Quotes=This is a Test
स्क्रिप्ट 2 में किसी भी पैरामीटर के बिना निष्पादित करें ("Quotes.cmd निकालें"):
आउटपुट:
Welcome!
Press any key to continue . . .
if "%1" == "" GOTO MyLabel
स्क्रिप्ट के निष्पादन को वस्तुतः तब तक नहीं मारता, जब तक कि%1
दोहरे कोट्स की संख्या न हो। मैं देखता हूं कि%1
इस त्रुटि के साथ स्क्रिप्ट के निष्पादन में विषम संख्या में दोहरे उद्धरण हैं :The syntax of the command is incorrect.
समस्या को हल करने के लिए वर्ग कोष्ठक का उपयोग करने वाले नीचे दिए गए समाधान को सही उत्तर के रूप में चिह्नित किया गया है, लेकिन यह किसी भी बेहतर नहीं लगता है । जब%1
दो-उद्धरणों की विषम संख्या होती है, तो यह समाधान भी उसी त्रुटि के साथ विफल हो जाता है।