[windows][bat] batch 파일/ cmd 에서 fork(unix) 처럼 병렬 실행하기

윈도우즈의 cmd 에서는 fork 가 없습니다

batch 파일/ cmd 에서는
start 명령으로 병렬실행을 할 수 있습니다
start 명령의 help 를 보면 아래와 같습니다

https://docs.microsoft.com/ko-kr/windows-server/administration/windows-commands/start

start [<title>] [/d <path>] [/i] [{/min | /max}] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/node <NUMA node>] [/affinity <hexaffinity>] [/wait] [/b] [<command> [<parameter>... ] | <program> [<parameter>... ]]


매개 변수Description
<title>명령 프롬프트 창 제목 표시줄에 표시할 제목을 지정합니다.
/d <path>시작 디렉터리를 지정합니다.
/iCmd.exe 시작 환경을 새 명령 프롬프트 창에 전달합니다. 경우 /i 를 지정 하지 않으면 현재 환경이 사용 됩니다.
{/min | /max}새 명령 프롬프트 창에서 (/min) 또는 최대화(/max)를 최소화하도록 지정합니다.
{/separate | /shared}별도 메모리 공간에서 16 비트 프로그램을 시작 (/separate) 또는 공유 메모리 공간 (공유 /). 이러한 옵션은 64 비트 플랫폼에서 지원 되지 않습니다.
{/low | /normal | /high | /realtime | /abovenormal | belownormal}지정 된 우선 순위 클래스에서 애플리케이션을 시작 합니다.
/node <NUMA node>기본 설정 NUMA(Non-Uniform Memory Architecture) 노드를 10진수 정수로 지정합니다.
/affinity <hexaffinity>새 애플리케이션 (16 진수 숫자로 표현 되는) 지정 된 프로세서 선호도 마스크를 적용 합니다.
/wait애플리케이션을 시작 하 고 끝날 때까지 대기 합니다.
/b새 명령 프롬프트 창을 열지 않고 애플리케이션을 시작합니다. CTRL + C 처리는 CTRL + C 처리 애플리케이션을 사용 하지 않으면 무시 됩니다. 애플리케이션을 중단 하려면 CTRL + BREAK를 사용 합니다.
[<command> [<parameter>... ] | <program> [<parameter>... ]]명령이 나 프로그램 시작을 지정 합니다.
<parameter>명령 또는 프로그램에 전달할 매개 변수를 지정합니다.
/?명령 프롬프트에 도움말을 표시합니다.

아래 처럼 창을 숨친 상태에서 병렬로 curl 명령을 실행 할 수 있습니다

for %%a in (*.log) do (
  start /b curl http://localhost:18080/logfile -d "{\"filepath\":\"E:\temp\06\%%a\"}
)


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다