批处理脚本在IF命令之前意外终止

时间:2014-02-27 13:01:06

标签: batch-file if-statement cmd

我在批处理脚本中编写了以下代码。

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是一个可执行软件。

1 个答案:

答案 0 :(得分: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