2016-09-23 2 views
0

Windows에서 스크립트를 실행하도록 예약하려고합니다. 트리거링 부분은 정상적으로 작동합니다. 나는 두 개 더 cmd를 창문을 개방 cmd.exe를에서 실행, 모두 스크립트를 실행 한 다음 창을 닫지 마십시오 때Windows 일괄 시작 명령과 ECHO가 완료되면 cmd의 창을 닫습니다.

start C:\staging-script -arg1 arg -arg2 arg & ECHO "Did staging" 
start C:\prod-script -arg1 arg -arg2 arg & ECHO "Did prod" 

:처럼 내 스크립트의 중요한 부분이 보인다. 이 문제에 대해 Windows 스케줄러를 사용하려고하면 "리소스가 아직 사용 중이므로"오류가 발생합니다.

또한 ECHO는 원래의 창에서 발생하지만 바로 발생합니다. 시작 작업이 완료됩니다.

+0

어쩌면 스크립트의 일부로 인해 창이 닫히지 않을 수 있습니까? 잠깐? 스크립트를 보여 주시겠습니까? 및 "부모 창에서 시작하여 프로세스가 시작된 후 에코"가 손실 된 것 같습니다. –

+0

명령이 종료 된 것처럼 보입니다. 새 cmd 창에'C : \>'가 나타나고 그 프롬프트가 작동합니다. – marisbest2

+0

''start ""cmd/C your-script -args'? – aschipfl

답변

1

start은 독립적 인 프로세스를 생성합니다. 프로세스가 시작되면 메시지가 생성되고 다음 행이 실행됩니다.

당신이 두 start 에드 프로세스가 병렬로 실행하려는 경우 당신이하는 프로세스 만 '창'에 의해 방해하고 당신이 경우 스크립트에서

exit 

를 삽입, start 에드

을 폐쇄하지 프로세스를 순차적으로 실행하려면, 메시지를 생성하고 프로세스 2를 시작하기 전에 완료 process1이며, 일괄 처리를 수행하려면 start을 수행하지 마십시오.

+0

스크립트를 수정할 수 없습니다. 여러 줄로 된 인라인 스크립트를 사용하는 좋은 방법이 있습니까? 내가 할 수있는 말은 'start (MYSCRIPT & exit) '인가? – marisbest2

+0

두 줄짜리 스크립트 시작 방법은'C : \ staging-script -arg1 arg -arg2 arg'/'exit'입니다. 두 개의'start' 스크립트가 병렬로 실행된다는 것을 기억하십시오. 그래서 다른 하나가 필요로하는 자원을 사용한다면 서로 간섭을 일으킬 것입니다. 그래서 첫 번째 스크립트가 시작되기 전에 두 번째 스크립트가 시작되지 않도록해야합니다. "시작"을 "호출"로 변경합니다. – Magoo

+0

인라인으로 처리 할 수 ​​있습니까? 아니면 다른 파일이어야합니까? – marisbest2

0

Windows가 실행하는 각 스크립트의 끝 부분에 exit를 추가하십시오.