[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

9.3

Command Line Parameters In Nested IF Statements

Asked by t0t0 in MS DOS

Tags: DOS Batch Nested IF Command Line Parameter

The problem here is simple. The code is written lexically correct. The nested IF statements are logically correct. Before the interpreter attempts to run this code, it first tries to resolve variables including command line variables. Where comparisons are made against %2, for the program to reach that part of the code %2 would infact be defined but the interpreter appears to ignore this logical fact. Is there a way to force the interpreter to accept this code without detracting from the current style?

What the code does: Simply put, it generates a random number between a min value and a max value. If there are no parameters, min and max are set to 1 and 9 respectively. If two values are passed as parameters then min and max are set to %1 and %2. Tests are then performed to validate that %1 and %2 are in range as well as the order of %1 and %2. Really simple but an annoyingly frustrating oversight.

@echo off
if "%1"=="" (
   set /a Min = 1                                             // There are no parameters so set default values
   set /a Max = 9
) else (
   if not "%2"=="" (                                         // %1 exists....
      if /i %1 lss 1 exit /b -2                             // %2 also exists so validate both %1 and %2....
      if /i %1 gtr 9 exit /b -3
      if /i %2 lss 1 exit /b -4
      if /i %2 gtr 9 exit /b -5
      if /i %1 gtr %2 exit /b -6
      set /a Min = %1                                       // and if all is well, set min and max values
      set /a Max = %2
   ) else (
      exit /b -1                                                  // %1 exists but %2 does not so no need to validate either
   )
)                                                                     // The rest of the code os okay

set /a num = %random% %% (%max% - %Min% + 1) + %Min%

echo %num%                                               // This line will be removed after debugging is complete
exit /b %num%
[+][-]04/28/09 01:27 PM, ID: 24254774Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zone: MS DOS
Tags: DOS Batch Nested IF Command Line Parameter
Sign Up Now!
Solution Provided By: dlb6597
Participating Experts: 2
Solution Grade: A
 
[+][-]04/28/09 02:04 PM, ID: 24255123Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]04/28/09 02:14 PM, ID: 24255217Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]04/29/09 08:30 AM, ID: 24261577Assisted Solution

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 30-day free trial to view this Assisted Solution or ask the Experts your question.

 
[+][-]04/29/09 10:59 AM, ID: 24262989Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-92 - Hierarchy / EE_QW_EXPERT_20070906