SET PTFS=945,915,865,855,845,830,815,810,
SET EX=
SET CMDS=
SET LP=
FOR %%I IN (%PTFS%) DO IF EXIST I%%IDIAG.EXE SET EX=I%%IDIAG
IF NOT "%EX%"=="" GOTO START
ECHO.
ECHO Error! 8xx/9xx executable not found.
ECHO.
GOTO END
REM Process the loop parameter this batch file.
:START
IF "%1"=="" GOTO RUN
REM If 'loop' param, set flag and remove.
REM
IF "%1"=="loop" SET LP=Y
IF "%1"=="loop" SHIFT
IF "%1"=="loop" GOTO START
REM Section overcomes DOS's nine parameter limit.
REM Collect all the non loop command line args.
REM
IF NOT "%1"=="" SET CMDS=%CMDS% %1
SHIFT
GOTO START
REM Call the exe with all the parameters.
:RUN
%EX%%CMDS%
ECHO .
IF ERRORLEVEL 2 GOTO FAIL
IF ERRORLEVEL 1 GOTO ABORT
IF "%LP%"=="Y" GOTO RUN
IF ERRORLEVEL 0 GOTO PASS
ECHO INVALID RETURN CODE
GOTO END
:PASS
ECHO Pass
GOTO END
:FAIL
ECHO Fail
GOTO END
:ABORT
echo incomplete
GOTO END
:END
ECHO .
REM Clean up environment
FOR %%I IN (EX,CMDS,PTFS,LP,LPF) DO SET %%I=
[ Last edited by field4728 on 2006-10-30 at 11:15 PM ]作者: NaturalJ0 时间: 2006-10-27 03:30 我是第一个回的,先给你解释第一行。 ^_^
@ECHO OFF
表示屏蔽屏幕输出。
PS: 是不是有点水。 = =b
[ Last edited by NaturalJ0 on 2006-10-27 at 03:31 AM ]作者: vkill 时间: 2006-10-27 03:32 汗~~~建议先好好看看这个
这句是注释,我看懂了作者: NaturalJ0 时间: 2006-10-27 05:27 DOS学习入门 & 精彩文章 (教学室) 能学到很多基础的东西,建议去下些教程看看。作者: lxmxn 时间: 2006-10-27 06:34
建议多看看命令与帮助:hh ntcmds.chm::ntcmds.htm,经常去教学室逛逛。作者: field4728 时间: 2006-10-30 23:18 版主我已经改了,请版主有时间帮小弟详细分析下这个程式吧,先谢谢了作者: 不得不爱 时间: 2006-10-31 03:11 @ECHO OFF //回显关闭,并且不输出ECHO OFF
SET PTFS=945,915,865,855,845,830,815,810, //设置变量PTFS的值
SET EX=
SET CMDS=
SET LP= //设置变量EX、CMDS、LP的值为空
FOR %%I IN (%PTFS%) DO IF EXIST I%%IDIAG.EXE SET EX=I%%IDIAG //如果找到 I945IDIAG.EXE 就设置EX变量为I945DIAG,如果找到 I865IDIAG.EXE 就设置EX变量为I865DIAG........
IF NOT "%EX%"=="" GOTO START //如果变量EX不是空的就跳到标号为:START的行
ECHO. //显示空行
ECHO Error! 8xx/9xx executable not found. //显示Error! 8xx/9xx executable not found.
ECHO. //显示空行
GOTO END 跳到标号为:END的行作者: field4728 时间: 2006-10-31 03:53 非常感谢QWE1234567的热情回复!!!
可否在帮忙解释下以下这段,我对%1,"%1"=="" 也有些不明白,再次感谢!
:START
IF "%1"=="" GOTO RUN
REM If 'loop' param, set flag and remove.
REM
IF "%1"=="loop" SET LP=Y
IF "%1"=="loop" SHIFT
IF "%1"=="loop" GOTO START
REM Section overcomes DOS's nine parameter limit.
REM Collect all the non loop command line args.
REM
IF NOT "%1"=="" SET CMDS=%CMDS% %1
SHIFT
GOTO START作者: 不得不爱 时间: 2006-10-31 05:36 IF "%1"=="" GOTO RUN //如果%1是空的就跳到:RUN
REM If 'loop' param, set flag and remove.
REM //注释
%1 //批处理文件中可替换参数
SHIFT 更改批处理文件中可替换参数的位置。