मैं बैच फ़ाइल में आईएफ कमांड से संबंधित एक खोज द्वारा लौटाए गए परिणामों में इस लेख में भाग गया, और मैं गलत धारणा को सही करने के अवसर का विरोध नहीं कर सकता कि अगर ब्लॉक एकल तक सीमित हैं आदेश देता है। एक उत्पादन विंडोज एनटी कमांड स्क्रिप्ट का एक हिस्सा है जो उस मशीन पर प्रतिदिन चलता है जिस पर मैं इस उत्तर को लिख रहा हूं।
if "%COPYTOOL%" equ "R" (
WWLOGGER.exe "%APPDATA%\WizardWrx\%~n0.LOG" "Using RoboCopy to make a backup of %USERPROFILE%\My Documents\Outlook Files\*"
%TOOLPATH% %SRCEPATH% %DESTPATH% /copyall %RCLOGSTR% /m /np /r:0 /tee
C:\BIN\ExitCodeMapper.exe C:\BIN\ExitCodeMapper.INI[Robocopy] %TEMP%\%~n0.TMP %ERRORLEVEL%
) else (
WWLOGGER.exe "%APPDATA%\WizardWrx\%~n0.LOG" "Using XCopy to make a backup of %USERPROFILE%\My Documents\Outlook Files\*"
call %TOOLPATH% "%USERPROFILE%\My Documents\Outlook Files\*" "%USERPROFILE%\My Documents\Outlook Files\_backups" /f /m /v /y
C:\BIN\ExitCodeMapper.exe C:\BIN\ExitCodeMapper.INI[Xcopy] %TEMP%\%~n0.TMP %ERRORLEVEL%
)
शायद दो या अधिक लाइनों के ब्लॉक, Windows NT कमांड पटकथा (.cmd फ़ाइलें) के लिए विशेष रूप से लागू होता है क्योंकि एक आवेदन के उत्पादन स्क्रिप्ट निर्देशिका की एक खोज है कि पुराने स्कूल बैच के लिए प्रतिबंधित है (बल्ला) फ़ाइलें , केवल एक कमांड ब्लॉक प्रकट किया। चूंकि आवेदन विस्तारित रखरखाव में चला गया है (जिसका अर्थ है कि मैं इसे समर्थन देने में सक्रिय रूप से शामिल नहीं हूं), मैं यह नहीं कह सकता कि ऐसा इसलिए है क्योंकि मुझे एक से अधिक पंक्ति की आवश्यकता नहीं थी, या मैं उन्हें काम नहीं कर सका।
भले ही, यदि बाद वाला सत्य है, तो एक सरल कामकाज है; एकाधिक लाइनों को या तो एक अलग बैच फ़ाइल या बैच फ़ाइल सबराउटिन में ले जाएं। मुझे पता है कि उत्तरार्द्ध दोनों प्रकार की स्क्रिप्ट में काम करता है।
स्रोत
2016-06-12 01:29:12
शायद यह मदद कर सकता है: http://commandwindows.com/batchfiles-branching.htm – esaj
हां, इससे मदद मिलती है। डॉस बेकार है। अगर मैं कई बयानों का उपयोग करना चाहता हूं, तो मुझे कथन के बीच और अन्य का उपयोग करना होगा? या क्या एक और सुरुचिपूर्ण तरीका है? –