मैं एक बैच फ़ाइल में IF कमांड से संबंधित खोज के द्वारा लौटाए गए परिणामों में इस लेख को पार कर गया, और मैं गलत धारणाओं को ठीक करने के अवसर का विरोध नहीं कर सका कि IF ब्लॉक एकल कमांड तक सीमित हैं। निम्नलिखित एक उत्पादन विंडोज एनटी कमांड स्क्रिप्ट का एक हिस्सा है जो उस मशीन पर दैनिक चलता है जिस पर मैं यह उत्तर लिख रहा हूं।
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%
)
शायद दो या दो से अधिक लाइनों के ब्लॉक एक्सक्लूसिव रूप से विंडोज एनटी कमांड स्क्रिप्ट्स (.सीएमडी फाइल्स) पर लागू होते हैं, क्योंकि किसी एप्लिकेशन के प्रोडक्शन स्क्रिप्ट्स डायरेक्टरी की खोज जो कि पुराने स्कूल बैच (.BAT) फाइलों तक ही सीमित है, केवल एक-कमांड ब्लॉक का पता चलता है। । चूंकि एप्लिकेशन विस्तारित रखरखाव में चला गया है (जिसका अर्थ है कि मैं सक्रिय रूप से इसका समर्थन करने में शामिल नहीं हूं), मैं यह नहीं कह सकता कि क्या इसलिए कि मुझे एक से अधिक लाइन की आवश्यकता नहीं थी, या कि मैं उन्हें काम नहीं कर सकता था।
भले ही, उत्तरार्द्ध सच हो, एक साधारण समाधान है; एक अलग बैच फ़ाइल या एक बैच फ़ाइल सबरूटीन में कई लाइनों को स्थानांतरित करें। मुझे पता है कि उत्तरार्द्ध दोनों प्रकार की लिपियों में काम करता है।