我正在开发一个批处理文件来收集websphere产品信息,它似乎除了某些情况下都能正常工作。意外退出windows批处理部分
出于某种原因,在某些情况下versionInfo.bat -maintenancePackages被调用,但下面的代码(检查manageprofiles.bat),它似乎是在调用versionInfo后从:check部分返回的。
我的Windows批处理写作技巧非常生疏,欢迎其他改进。
@echo off
SetLocal EnableDelayedExpansion
set tmpfile=%TEMP%\tmpdone.txt
echo. > %tmpfile%
For /F "eol= delims=| tokens=13" %%a in (%windir%\vpd.properties) Do (
set check=%%a
call :check
)
goto eof
:check
Set skip=No
For /F "eol= delims=|" %%a in (%tmpfile%) Do (
if "%%a" == "%check%" set skip=YES
)
if %skip% == YES goto eof
echo %check%>>%tmpfile%
if exist "%check%\bin\versionInfo.bat" "%check%\bin\versionInfo.bat" -maintenancePackages
echo %check%\bin\manageprofiles.bat
if exist "%check%\bin\manageprofiles.bat" "%check%\bin\manageprofiles.bat" -listProfiles
goto eof
:del
echo Done
del %tmpfile%
:eof
你在versionInfo.bat中有没有退出调用?如果你没有使用exit/b,这可能会触发整个脚本的退出。 – Rod 2010-09-08 21:22:49
我无法控制versionInfo.bat的内容/退出,所以是的,它可能会退出。我不确定我明白为什么被调用的批处理的退出代码会中断当前部分。 – 2010-09-08 21:28:45
您的问题指出我的方向正确,我需要“调用”versionInfo.bat以防止它退出当前部分。 – 2010-09-08 21:30:41