Originally posted by acoreq at 2006-8-13 14:15:
刚又发现,因为这个脚本是FOR MULTIPLE机器的
方法就是FOR /F %%i in (set) do (call ***.bat %%i)
发现set里的机器名顺序的不同 对于log文件的输出也有关系。〠...
Patch NOT installed !有被输出
但不是%strComputerName%的问题,因为同样的变量在success.log里是输出的
也不是REG问题 因为REG判断后进入IF的ROUTE是正确的
刚又有一个重大发现!!
只有set里的最后一条纪录会被输出
不论它应该到fail.log还是success.log (发现越来越接近真相了,和和)
而且还发现,如果把IF那段改成下面那段(功能上应该一样的),注意这里用call了没用GOTO,怪事又来了
PATCH NOT INSTALLED!会显示2次,从而使p1 p2值产生错误,但是把call改成先前goto的结构 至少判断语句不会执行2次。。。 (没想法中。。。)
现决定贴出所有源代码,望斑竹或好心人帮忙研究一下!
谢谢!!!!
if errorlevel 1 (
call :notpatched
) else (
call :patched
)
:notpatched
echo Patch NOT installed
echo %strComputerName% >> fail.log
set /a p1=p1+1
goto nextloop
:patched
echo Patch installed
echo %strComputerName% >> success.log
set /a p2=p2+1
goto nextloop
:nextloop
::route to next PC validation
Last edited by acoreq on 2006-8-13 at 20:54 ]