2014-02-27 2 views
0

배치 스크립트에 아래 코드를 작성했습니다.IF 명령 전에 갑자기 종료되는 일괄 스크립트

set /p timestamp=Enter timestamp: 
cd "C:\temp\%timestamp%" 
for %%a in (*.rmt) do (bldtool -c COMMAND -a SPLIT -n %%a -l C:\temp\%timestamp%) 
if exist "C:\temp\%timestamp%\XCLES01A.c" (xcopy /Y "C:\Program Files\CA\AllFusion Gen\GEN\extrn\src\XCLES01A.c" "C:\temp\%timestamp%") 
for %%a in (*.icm) do (bldtool -c COMMAND -a BUILD -n %%a -l C:\temp\%timestamp% -f CodeMgr) 
pause 

위의 스크립트를 cmd에서 줄 단위로 실행하면 예상대로 실행됩니다. 그러나 스크립트 형태로 실행하면 if 명령이 실행되기 전에 종료됩니다. 즉, 창이 사라집니다.

이 문제를 해결하는 데 많은 시간을 투자했지만 여전히 문제가 있습니다. 도와주세요 ! 나는 배치 스크립팅을 처음 접했습니다.

미리 감사드립니다.

업데이트 : BLDTOOL은 실행 가능한 소프트웨어입니다.

+4

는'배치 파일을 bldtool' 있습니까? 만약 그렇다면'call bldtool .... '을 사용하여 호출 코드로 실행을 리턴 할 필요가있다. –

+0

안녕하세요, "bldtool"이 무엇인지 말씀해 주실 수 있습니까? 감사. – 09stephenb

+0

안녕하세요 !! BLDTOOL은 실행 가능한 소프트웨어입니다. 그러나 BLDTOOL이 작동하는지 확인하기 위해 BLDTOOL을 호출하도록 변경했습니다. 고맙습니다!! – user3331568

답변

0

(나는 아니지만이)이 시도 :

set /p timestamp=Enter timestamp: 
cd /D "C:\temp\%timestamp%" 

for %%a in (*.rmt) do (
    bldtool -c COMMAND -a SPLIT -n %%a -l "C:\temp\%timestamp%" 
) 

if exist "C:\temp\%timestamp%\XCLES01A.c" (
    xcopy /Y "C:\Program Files\CA\AllFusion Gen\GEN\extrn\src\XCLES01A.c" "C:\temp\%timestamp%" 
) 

for %%a in (*.icm) do (
    bldtool -c COMMAND -a BUILD -n %%a -l "C:\temp\%timestamp%" -f CodeMgr 
) 

pause 
관련 문제