troubleshooting Question

Syantx of command of wrong when we ran with single arument

Avatar of kumar siva
kumar siva asked on
Windows Batch
3 Comments1 Solution114 ViewsLast Modified:
When I ran the below script with single/Without  arguments
Ex.AB-A0123-DLY
  AB-A0123-DLY 4

it was giving the error as The syntax of the command is incorrect was wrong.
@echo off
cls
setlocal EnableDelayedExpansion

SET arg1=%1
call %~dp0\ABMaster.bat

::#Get the number of arguments
SET /A ARGS_COUNT=0
FOR %%A in (%*) DO SET /A ARGS_COUNT+=1 

::#Calculate thread count,thread start and thread end numbers only all three arguments are supplied.
IF "%3" == "" GOTO cont
SET /A a = %1%
SET /A b = %2%
SET /A c = %3%
:cont

IF %ARGS_COUNT% == 2 GOTO MIN_ARG
IF %ARGS_COUNT% geq 4 (
      :MIN_ARG      
            echo Incorrect arguments provided. Ending the job. Run the job with  correct arguments as shown in below example. 
            set ERRORLEVEL=-1 
            GOTO JOB_STATUS
      )
IF %ARGS_COUNT% leq 1  (
      IF "%arg1%" == "" (
            @echo Executing job without Parameters
            Java %JAVA_OPTS% -Djava.awt.headless=true -server -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:NewRatio=3 com.abc.abcDriver AB-A0123-DLY >%BATCH_LOG%\AB-A0123-DLY_%timestamp%.txt 2>&1
      ) ELSE (
            @echo Executing job with single Parameters
            FOR /L %%G IN (1,1,%arg1%) DO (
                  @echo Executing job with Parameter %%G
                  cmd /c start /b %~dp0TestParallelRun.bat AB-A0123-DLY %%G %arg1%
                  ping -n 6 127.0.0.1 >nul
            )
      )

      :checkfile
      FOR /L %%G IN (1,1,%arg1%) DO (
            if not exist %BATCH_LOG%\AB-A0123-DLY_T_%%G_%arg1%.txt GOTO checkfile
            )
      FOR /L %%G IN (1,1,%arg1%) DO (
            set /p value=< %BATCH_LOG%\AB-A0123-DLY_T_%%G_%arg1%.txt
            SET trimval=!value: =!
            IF NOT !trimval! == 0 (
                  set ERRORLEVEL=!trimval!
                  del %BATCH_LOG%\CO\AB-A0123-DLY_T_*.txt
                  GOTO JOB_STATUS
            )
      )
)

IF "%ARGS_COUNT%" == "3" (
	FOR /L %%G IN (%b%,1,%a%) DO (			
		@echo Executing job with Parameter %%G
		cmd /c start /b %~dp0TestParallelRun.bat AB-A0123-DLY %%G %a%
		ping -n 6 127.0.0.1 >nul
		
		IF %%G geq %c% (			
			goto :BREAK
		)
	)
	:checkfile2
	FOR /L %%G IN (%b%,1,%a%) DO (
		if not exist %BATCH_LOG%\AB-A0123-DLY_T_%%G_%a%.txt GOTO checkfile2
		IF %%G geq %c% (			
			goto :checkfile3
		)
	)
	:checkfile3
	FOR /L %%G IN (%b%,1,%a%) DO (
		set /p value=< %BATCH_LOG%\AB-A0123-DLY_T_%%G_%a%.txt
		SET trimval=!value: =!
		IF NOT !trimval! == 0 (
			set ERRORLEVEL=!trimval!
			del %BATCH_LOG%\AB-A0123-DLY_T_*.txt
			GOTO JOB_STATUS
		)
		IF %%G geq %c% (			
			goto :BREAK
		)
	)
)

:BREAK
if exist %BATCH_LOG_TRUNK%\AB-A0123-DLY_T_*.txt del %BATCH_LOG_TRUNK%\AB-A0123-DLY_T_*.txt

:JOB_STATUS
call %~dp0\ABCJobStatus.bat
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros