배치 프로그램이 제대로 작동하지 않습니다!

배치 프로그램이 제대로 작동하지 않습니다!

배치 스크립트(여기에서 전체 내용을 확인하세요) 먼저 일부 서비스를 시작한 다음 애플리케이션을 시작합니다. 응용 프로그램이 완료된 후 일괄 처리는 프로그램 GOTO somewhere이 종료되어 계속 진행되기를 기다리고 있습니다.

애플리케이션을 시작하고 진행하기 위한 헤더:

:vmSTARTAPP
    "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
    IF NOT %BACK%==NULL GOTO %BACK%
    GOTO STARTAPPCONT

이 헤더는 다른 헤더에서 호출됩니다.

:STARTAPP
    cls
    echo Starting Application
    GOTO %BATCH%

%BATCH%다음 헤더의 이름을 포함합니다. 위의 경우 vmSTARTAPP.

새 명령 프롬프트 창에서 실행하면 제대로 작동하지만 이 배치에서는 작동하지 않습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

추신: 이 질문을 이전 질문과 연관시키지 마십시오. 이것은 완전히 다른 경우입니다.

답변1

표시되는 라인을 교체해 볼 수 있습니까?

:vmSTARTAPP
    "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"

~와 함께

:vmSTARTAPP
    start "Starting VMWare" /B "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"

나는 당신이 VMWare를 자동으로 시작하고 멈추지 않고 계속하기를 원한다고 가정하고 있으며 이론상으로는 그렇게 해야 합니다.

start명령은 전달하는 명령(이 경우 "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe")을 실행하도록 DOS에 지시하며 기본적으로 전달한 명령을 기다리지 않습니다. 반환하고 대신 별도의 프로세스에서 실행합니다.

기본적으로 배치 파일에 있는 모든 줄은 순차적으로 실행되며 다음 줄로 이동하기 전에 모든 줄이 실행되고 반환될 때까지 기다립니다. 명령 start은 별도의 프로세스(DOS 창)에 전달한 프로그램을 시작하여 이 문제를 해결하므로 배치 파일에서 이 줄을 발견하고 평소와 같이 실행하며 명령이 start반환되었음을 확인합니다(실행할 새 프로세스를 만든 후). 명령 입력) 및 배치 파일은 예상치 못한 일이 없었던 것처럼 계속됩니다.

제목 은 단순히 제목입니다. 새로 생성된 DOS 창은 새 DOS 창을 표시하지 않도록 지시하는 인수가 "Starting VMWare"아닌 경우 해당 제목을 갖게 됩니다 . /B제목은 필요하지만 선택 사항이며 때때로 제목 없이 스크립트에서 WTF 순간을 보냈지만 그 시간은 규칙보다 예외에 가깝습니다.

시작 명령에 대한 자세한 내용은 다음에서 확인할 수 있습니다.http://ss64.com/nt/start.html

관련 정보