for循环在批处理中没有按预期工作

时间:2013-09-14 11:42:55

标签: batch-file

您好我是批处理脚本的新手。我一直在尝试将jar文件的输出状态分配给我的 heartBeatTime 变量。问题是这在cmd中有效。但是,当我作为批处理运行时,它根本不起作用。任何线索为什么?

set currTimestamp=%date:~10,4%-%date:~4,2%-%date:~7,2% %time:~0,2%-%time:~3,2%
set appCount=0
set ids=9516
set trialCount=1
set abortCount=1

:checkPublish
for %%f in (10003202 10003207 10003257 10003203 10003232 10003227 10003209 10003213 10003234 10003239 10003240 10003216 10003226 10003238 10003206 10003231 10003252 10003219 10003251) do (
java -jar appPublishCheck.jar %%f >temp
set /p heartBeatTime=<temp
if currTimestamp LEQ heartBeatTime(
set /a appCount=%appCount%+1
)
)
set finalCount=%appCount%
set appCount=0
if %finalCount%==0 goto :wait10
else goto :wait5

:wait10
set /a abortCount=%abortCount%+1
if %abortCount%==25 goto :abort
else(
    ping 1.1.1.1 -n 1 -w 600000 >NUL
    goto :checkPublish
)

:wait5
set /a trialCount=%trialCount%+1
if %trialCount%==4 goto :runATF
else(
    ping 1.1.1.1 -n 1 -w 300000 >NUL
    goto :checkPublish
)

:abort
exit

:runATF
set /a delay=%delay%*60000
ping 1.1.1.1 -n 1 -w %delay% >NUL
cd %IATF_HOME%
set drive=%IATF_HOME:~0,1%
%drive%:
for %%f in (%ids%) do ant runATF -DappID=%%f

1 个答案:

答案 0 :(得分:0)

你没有在那里使用状态变量 - 但通常需要延迟扩展来评估循环中的变量。

然后在循环中添加:

echo "!status!"