IF 문에서 수식을 사용하고 싶을 때, 예를 들면, 에러 체크를 위해 루프를 도는 개수등을 카운트하고 싶다면 SET 에서 /A 옵션을 사용하고 IF에서 비교 연산자를 사용하면 된다. IF 문의 비교 연산자는 다음과 같다

EQU - 같음
NEQ - 같지 않음
LSS - 보다 작은
LEQ - 작거나 같음
GTR - 보다 큰
GEQ - 크거나 같음


다음은 start 로 3가지 일을 동시에 처리한 후 goto와 label을 이용, cygwin의 delay로 일정 시간 체크한 후 그 후 에러로 처리하는 bat 파일의 예다.

@echo off
SET /A LOOP_COUNT=1
SET /A LOOP_MAX_COUNT=5
SET CYGWIN_DELAY=[Cygwin 경로]\delay.exe
SET DELAY_TIME=5m

rem WORK1, 2, 3를 동시에 돌린다. 다음 작업에 dependency 가 있는 작업에
rem start의 /W 옵션을 주어 기다리도록 한다.

start WORK1.bat
start WORK2.bat
start /W WORK3.bat

goto CHECK

:DELAY
rem if LOOP_COUNT >= LOOP_MAX_COUNT
IF %LOOP_COUNT% GEQ %LOOP_MAX_COUNT% (
echo ERROR!
exit 1
)
rem Delay 한다.
%CYGWIN_DELAY% %DELAY_TIME%

rem LOOP_COUNT += 1
SET /A LOOP_COUNT+=1

:CHECK
echo Checking...
IF [WORK1 실패조건] (
echo Work 1 is Failed!
goto DELAY
)
echo Work1 is success!
IF [WORK2 실패조건] (
echo Work 2 is Failed!
goto DELAY
)
echo Work2 is success!
IF [WORK3 실패조건] (
echo Work 3 is Failed!
goto DELAY
)
echo Work3 is success!

call WORK4.bat
Tag // /A, BAT, Batch, If, SET, 비교
DOS/Windows 환경의 배치파일(.bat)에서 여러 명령을 한꺼번에 수행하고 싶을 때 start란 명령을 사용한다고 한다.
도움말에서 나오는 소개는 "지정된 프로그램이나 명령을 별도의 창에서 시작합니다." 라고 되어 있다.

start 명령에 대한 도움말은 /? 옵션을 통해 볼 수 있다.

실행하는 형식은 다음과 같다
START ["제목"] [/D경로] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [명령어/프로그램]
      [매개 변수]

많이 쓰이는 것으로 보이는 몇가지 옵션을 정리하자면

/D 시작 디렉토리 지정
/B 새 창을 만들지 않고 응용 프로그램 시작

예제
start /D"D:\Source" cmd

배치 파일에서 사용하면 여러 동작을 순차적이 아닌 한번에 시작할 수 있다.

참고 : 윈도우에서 여러 프로그램을 한 번에 실행시키는 팁 - 운명과시간의신