2013-05-30 4 views
8

있는 내가 일하고 박쥐 스크립트 코드 블록은 다음과 같은 :명령은 배치 파일에서 개미 명령 다음에 무시됩니다

ECHO off 

IF NOT EXIST "%ANT_HOME%" ( 

    SET ANT_HOME=%~dp0%build\apache-ant-1.8.2 
    SET ANT_BIN=%~dp0%build\apache-ant-1.8.2\bin 

    SET PATH | FIND "%ANT_HOME%;%ANT_BIN%" 
) 
cd "build\Run" 
ant -q 

cd ../.. 
echo "Program Terminated!" 
exit 

이제 내 build.xml 파일이 빌드 \ 실행을 폴더 안에입니다 그래서 ant -q 명령을 실행하기 전에 먼저 빌드/실행을 탐색합니다 (참고 :이 탐색 방법을 변경하고 싶지는 않습니다).

순간 개미 -q 명령이 다음 실행되는 일이 발생 :

  1. 는 조건으로 환경 변수를 설정합니다.
  2. \ Run 빌드 할 디렉터리를 변경하십시오.
  3. 내 build.xml이 Run 디렉터리 내에 있으므로 ant -q 명령이 올바르게 실행됩니다.
  4. 개미가 올바르게 실행되지 않고 개미 스크립트가 종료되지 않습니다.
  5. 이제 내 현재 경로가 build \ Run이됩니다! 개미가 종료 된 후 = 여기 < 올바른 내가 대신 내가 cd../..

을 사용하지만 문제는 내가 개미 후 명령을 실행할 수 없습니다 오전 왜 빌드 \의 실행에서 나올하려면,이 원하지 않는 -큐. 이것은 프로그램 컨트롤이 BATCH => ANT에서 시작될 때 발생합니다.

bat 스크립트 자체에서 ant 명령 다음에 내 명령을 실행할 수 있습니까?

+1

참고,'SET PATH | "! ANT_HOME!;! ANT_BIN!"은 (는) 경로를 설정하지 않습니다. 추가 정보가있는 경우에만 알려줍니다. – Stephan

답변

17

실행중인 ant은 배치 파일 자체 인 경우가 있는데,이 경우 단순히 반환 장치에 연결됩니다.

대신이 시도해야합니다 : (체인 반대)

call ant -q 

가 제대로 당신이 그것을 호출 후 지점으로 반환하는 배치 파일을 호출.

+0

내 문제도 해결되었습니다! 감사! –

+0

굉장한 소스! 스크립트로 무엇이 잘못되었는지 알아 내려고 애 쓰고 있습니다. 당신은 나의 구세주 야. T^T –

+0

완벽한 솔루션! 나를 위해 일했다! 대단히 감사합니다! –

관련 문제