home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cenvi23.zip / BATLOOPS.CMD < prev    next >
OS/2 REXX Batch file  |  1995-03-31  |  3KB  |  95 lines

  1. @echo off
  2. REM *************************************************************************
  3. REM *** BatLoops.cmd - Demonstrate various ways to enhance a batch file   ***
  4. REM *** ver.1          with looping using CEnvi2.  This also shows various ***
  5. REM ***                ways that CEnvi2 source code can be called from     ***
  6. REM ***                within a batch file.                               ***
  7. REM *************************************************************************
  8. ECHO BatLoops: Use CEnvi2 and various methods to loop five times
  9.  
  10.  
  11. ECHO  
  12. ECHO LOOP METHOD 1
  13. ECHO    THIS METHOD DEMONSTRATES THE CEnvi2 CAPABILITY FOR MATHEMATICAL
  14. ECHO    PROCESSING OF VARIABLES, EVEN ENVIRONMENT VARIABLES
  15. PAUSE
  16. set LOOP_COUNT=1
  17. :ABEGIN_LOOP
  18.    echo    This is pass %LOOP_COUNT% through this loop - 1
  19.    call CEnviSet LOOP_COUNT++
  20.    if %LOOP_COUNT% == 6 GOTO AEND_LOOP
  21.    GOTO ABEGIN_LOOP
  22. :AEND_LOOP
  23.  
  24.  
  25. ECHO  
  26. ECHO LOOP METHOD 2
  27. ECHO    CEnvi2 WILL SET AN ENVIRONMENT VARIABLE FOR THE PROPER GOTO LABEL
  28. PAUSE
  29. set LOOP_COUNT=1
  30. :BBEGIN_LOOP
  31.    echo    This is pass %LOOP_COUNT% through this loop - 2
  32.    call CEnviSet "LOOP_GOTO = ( LOOP_COUNT++ < 5 ) ? "BBEGIN_LOOP" : "BEND_LOOP""
  33.    GOTO %LOOP_GOTO%
  34. :BEND_LOOP
  35.  
  36.  
  37. ECHO  
  38. ECHO LOOP METHOD 3
  39. ECHO    CEnvi2 SETS AN ENVIRONMENT VARIABLE TO A BATCH FILE STATEMENT
  40. PAUSE
  41. set LOOP_COUNT=1
  42. :CBEGIN_LOOP
  43.    echo    This is pass %LOOP_COUNT% through this loop - 3
  44.    call CEnviSet "LOOP_COMMAND = ( LOOP_COUNT++ < 5 ) ? "GOTO CBEGIN_LOOP" : " ""
  45.    %LOOP_COMMAND%
  46.  
  47. ECHO  
  48. ECHO LOOP METHOD 4
  49. ECHO    CEnvi2 WILL EXECUTE CODE FROM SELECTED LINES OF THIS BATCH FILE
  50. PAUSE
  51. CEnvi2 #include "%0,cmd,:CODE4"
  52. :CODE4   for ( i = 1; i <= 5; i++ )
  53. :CODE4      printf("   This is pass %d through this loop - 4\n",i)
  54.  
  55.  
  56. ECHO  
  57. ECHO LOOP METHOD 5
  58. ECHO    CEnvi2 WILL READ SOURCE FROM THIS EXECUTABLE, AND THEN CALL A FUNCTION
  59. PAUSE
  60. CEnvi2 "#include <%0,cmd,:CODE5>   LoopFoo(1,5)"
  61. :CODE5   LoopFoo(min,max) {
  62. :CODE5      for ( i = min; i <= max; i++ )
  63. :CODE5         printf("   This is pass %d through this loop - 5\n",i)
  64. :CODE5   }
  65.  
  66.  
  67. ECHO  
  68. ECHO LOOP METHOD 6
  69. ECHO    THIS METHOD DEMONSTRATES THE USE OF A CMM "EXECUTABLE"; THAT IS, THE
  70. ECHO    .CMD EXTENSION ON THE INPUT TELLS CEnvi2 TO CALL main(argc,argv) WITH
  71. ECHO    THE COMMAND LINE ARGUMENTS
  72. PAUSE
  73. CEnvi2 %0.cmd 1 5
  74. GOTO CENVI_EXIT
  75. main(argc,argv)
  76. {
  77.    for ( i = atoi(argv[1]); i <= atoi(argv[2]); i++ )
  78.       printf("   This is pass %d through this loop - 6\n",i)
  79. }
  80. :CENVI_EXIT
  81.  
  82.  
  83. ECHO  
  84. ECHO LOOP METHOD 7
  85. ECHO    CMM SOURCE CODE IS PASSED TO CEnvi2 DIRECTLY ON THE COMMAND LINE
  86. PAUSE
  87. CEnvi2 "for ( i = 1; i <= 5; i++ ) printf("   This is pass %%d through this loop - 7\n",i)"
  88.  
  89.  
  90. REM Cleanup up the variables used
  91. set LOOP_COUNT=
  92. set LOOP_GOTO=
  93. set LOOP_COMMAND=
  94. set METHOD_COUNT=
  95.