break||(
code that cannot contain non paired closing bracket
)
जबकि goto
समाधान एक अच्छा विकल्प है, यह within brackets (FOR और IF आदेशों सहित) काम नहीं करेगा। लेकिन यह होगा। हालांकि आपको FOR
और IF
आदेशों के लिए बंद ब्रैकेट और अमान्य वाक्यविन्यास के बारे में सावधान रहना चाहिए क्योंकि उन्हें पार्स किया जाएगा।
अद्यतन
dbenham's जवाब में अद्यतन मुझे कुछ विचार दे दी है। पहला - दो अलग-अलग मामले हैं जहां हमें बहु रेखा टिप्पणियों की आवश्यकता हो सकती है - एक ब्रैकेट के संदर्भ में जहां गोटो का उपयोग नहीं किया जा सकता है और इसके बाहर। ब्रैकेट संदर्भ के अंदर हम एक और शर्त का उपयोग कर सकते हैं यदि कोई ऐसी स्थिति है जो कोड को निष्पादित करने से रोकती है। कोड कोड को अभी भी पर पार्स किया जाएगा और कुछ वाक्यविन्यास त्रुटियों का पता लगाया जाएगा (FOR
, IF
, अनुचित रूप से बंद ब्रैकेट, गलत पैरामीटर विस्तार।)। तो यदि यह संभव है तो गोटो का उपयोग करना बेहतर है।
हालांकि लेबल के रूप में उपयोग किए जाने वाले मैक्रो/वेरिएबल को बनाना संभव नहीं है - लेकिन ब्रैकेट की टिप्पणियों के लिए मैक्रोज़ का उपयोग करना संभव है। फिर भी दो चालों का उपयोग किया जा सकता है GOTO टिप्पणियां अधिक सममित और अधिक सुखदायक (कम से कम मुझे)। इसके लिए मैं दो चाल का उपयोग करूंगा - 1) आप एक लेबल के सामने एक ही प्रतीक डाल सकते हैं और गेटो अभी भी को खोजने में सक्षम होगा (मुझे नहीं पता कि यह क्यों है। मेरे संकेत यह एक ड्राइव की तलाश में है)। 2) आप एक परिवर्तनीय नाम के अंत में एक :
डाल सकते हैं और एक प्रतिस्थापन/सबट्रिंग सुविधा ट्रिगर नहीं की जाएगी (यहां तक कि सक्षम एक्सटेंशन के तहत भी)। ब्रैकेट टिप्पणियों के लिए मैक्रोज़ के साथ संयुक्त जो दोनों मामलों को लगभग समान दिखने के लिए बना सकता है।
तो यहाँ उदाहरण हैं (क्रम में मैं उन्हें सबसे अधिक पसंद):
@echo off
::GOTO comment macro
set "[:=goto :]%%"
::brackets comment macros
set "[=rem/||(" & set "]=)"
::testing
echo not commented 1
%[:%
multi
line
comment outside of brackets
%:]%
echo not commented 2
%[:%
second multi
line
comment outside of brackets
%:]%
::GOTO macro cannot be used inside for
for %%a in (first second) do (
echo first not commented line of the %%a execution
%[%
multi line
comment
%]%
echo second not commented line of the %%a execution
)
कर्ली कोष्ठक के साथ:
@echo off
::GOTO comment macro
set "{:=goto :}%%"
::brackets comment macros
set "{=rem/||(" & set "}=)"
::testing
echo not commented 1
%{:%
multi
line
comment outside of brackets
%:}%
echo not commented 2
%{:%
second multi
line
comment outside of brackets
%:}%
::GOTO macro cannot be used inside for loop
for %%a in (first second) do (
echo first not commented line of the %%a execution
%{%
multi line
comment
%}%
echo second not commented line of the %%a execution
)
साथ
आयताकार कोष्ठक साथ
ब्रांड्स:
@echo off
::GOTO comment macro
set "(:=goto :)%%"
::brackets comment macros
set "(=rem/||(" & set ")=)"
::testing
echo not commented 1
%(:%
multi
line
comment outside of brackets
%:)%
echo not commented 2
%(:%
second multi
line
comment outside of brackets
%:)%
::GOTO macro cannot be used inside for loop
for %%a in (first second) do (
echo first not commented line of the %%a execution
%(%
multi line
comment
%)%
echo second not commented line of the %%a execution
)
मिश्रण powershell के बीच और सी शैलियों (<
क्योंकि पुनर्निर्देशन उच्च prio साथ है नहीं किया जा सकता।*
%*
की वजह से) का इस्तेमाल किया नहीं किया जा सकता:
@echo off
::GOTO comment macro
set "/#:=goto :#/%%"
::brackets comment macros
set "/#=rem/||(" & set "#/=)"
::testing
echo not commented 1
%/#:%
multi
line
comment outside of brackets
%:#/%
echo not commented 2
%/#:%
second multi
line
comment outside of brackets
%:#/%
::GOTO macro cannot be used inside for loop
for %%a in (first second) do (
echo first not commented line of the %%a execution
%/#%
multi line
comment
%#/%
echo second not commented line of the %%a execution
)
करने के लिए emphase एक टिप्पणी है कि (सोचा था कि यह इतना कम नहीं है):
@echo off
::GOTO comment macro
set "REM{:=goto :}REM%%"
::brackets comment macros
set "REM{=rem/||(" & set "}REM=)"
::testing
echo not commented 1
%REM{:%
multi
line
comment outside of brackets
%:}REM%
echo not commented 2
%REM{:%
second multi
line
comment outside of brackets
%:}REM%
::GOTO macro cannot be used inside for
for %%a in (first second) do (
echo first not commented line of the %%a execution
%REM{%
multi line
comment
%}REM%
echo second not commented line of the %%a execution
)
धन्यवाद महोदय! – user219628
+1: इसके लिए "गोटो" का उपयोग करना मजेदार है और यह काम करता है! –
मुझे लगता है कि मजाकिया बात यह है कि कमांड लाइन में कोई वास्तविक टिप्पणी परिभाषा नहीं है, मैं टिप्पणी पंक्तियों के रूप में 'आरईएम' लाइनों को स्वीकार नहीं कर सकता, यह आउटपुट अस्पष्ट – mkb