ব্যাচ ফাইল এবং ফাংশন থেকে মান ফেরত values


-1

আমার এক ব্যাচের ফাইল রয়েছে যার একাধিক রুটিন রয়েছে। উদাহরণ

:checkFileExists
if not exist %1\%2 (
echo %2 does not exist under %1
set returnValue=FAIL
exit /b 1 
) 
exit /b 0 
:checkPortNumber 
if %1 LSS 1024 (
port number should be greater than 1024 and less than 65535
set returnValue=FAIL
exit /b 1 
)
... other checks for port number
exit /b 0 
... main code.. 
set returnValue=OK
call :checkFileExists c:\tmp
echo %returnValue% 
call :checkFileExists c:\tmp2
echo %returnValue% 
call :checkPortNumber 89
echo %returnValue% 

c: mp tmp কেবল একটি উদাহরণ এবং এটি বিদ্যমান। আমার রিটার্ন মান ঠিক আছে হিসাবে প্রদর্শিত হয়। c: mp tmp2 বিদ্যমান নেই এবং আমার রিটার্নভ্যালু সঠিকভাবে ব্যর্থ হিসাবে প্রদর্শিত হবে।

আমি আশা করি চেকপোর্টনম্বার পরীক্ষায় ব্যর্থ হবে তবে রিটার্নভ্যালু সর্বদা ঠিক আছে OK আমি সেটলোকাল সক্রিয় ডিলেডএক্স্পেনশন দিয়েও চেষ্টা করেছি এবং নেই। আমি কি অনুপস্থিত কিছু আছে?

উত্তর:


1

এই পুনঃক্রম / পুনঃনির্মাণ / পুনরায় ফর্ম্যাট কোডটি প্রত্যাশার সাথে আচরণ করে।

আপনার কোড সহ প্রধান সমস্যা আপনি যে শুধুমাত্র set returnValue=OKএকটি সাবরুটিন, শুরুতে একবার set returnValue=Failএই জিদ করে এমনকি যদি অন্য সাব করে exit /B 0

:: Q:\Test\2018\12\15\SU_1383774.cmd
@echo off
:: ... main code.. 

call :checkFileExists c:\tmp || Echo returned errorlevel %errorlevel%
echo %returnValue% 

call :checkFileExists c:\tmp2 || Echo returned errorlevel %errorlevel%
echo %returnValue% 

call :checkPortNumber 89 || Echo returned errorlevel %errorlevel%
echo %returnValue% 

Goto :Eof

:checkFileExists
if not exist "%~1\%~2" (
    echo %2 does not exist under %1
    set returnValue=FAIL
    exit /b 1 
) 
set returnValue=OK
exit /b 0 

:checkPortNumber 
if %1 LSS 1024 (
    echo port number should be greater than 1024 and less than 65535
    set returnValue=FAIL
    exit /b 1 
)
:: ... other checks for port number
set returnValue=OK
exit /b 0 

1
মূল কোডটি যখন ব্যবহার করে না কেন এটি কেন কাজ করে তা যদি আপনি ব্যাখ্যা করেন তবে এটি আরও ভাল উত্তর হবে।
ডেভিডপস্টিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.