FOR %%I IN (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) DO SET OKHWID%%I=NU
可以简写:FOR /L %%I IN (1 1 16) DO SET OKHWID%%I=NU
set /a N=!N!+1可以简写:set /a N+=1(纯习惯问题)
下面这句
FOR /F "TOKENS=3 DELIMS=:" %%Q IN ('FIND /I /C "SUCCESS:Install completed" "%WINDIR%\DPINST.LOG"') DO (IF %%Q GTR 0 SET EF=)
貌似仅仅是为了确定DPINST.LOG中是否有SUCCESS:Install completed一个或更多,然后SET EF=
应该可以不用for,用 && 或 || 实现,你后面也用了,例如
FIND /I /C "SUCCESS:Install completed" "%WINDIR%\DPINST.LOG" >nul 2>nul && SET EF=
用for不知道有没有其它原因,好几处都是用了for。