![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-17 23:41 |
共 47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 请帮助分析一个批处理文件 |
| 可打印版本 901 / 2 |
| 第1楼 seifer1754 | 发表于 2006-03-16 17:36 |
| 初级用户 发帖 9 积分 26 | |
|
请帮助分析一个批处理文件 这个是IBM公司的一个电脑检测软件中的autoexec.bat程序,用到了很多的DOS命令和参数,希望大家能够帮助我分析一下,感激不尽。
@ECHO OFF cls /* REXX */ ramDrive = '' /* validDrives = 'C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: ' */ validDrives = ' Y: X: W: V: U: T: S: R: Q: P: O: N: M: L: K: J: I: H: G: F: E: D: C:' maxDrive = words(validDrives) driveInfo = '' DO i = 1 to maxDrive ramDrive = word(validDrives , i) driveInfo = rxdinfo(ramDrive) if driveInfo \= '' then do if word(driveInfo,4) = 'RAMDRIVE' then i = maxDrive+1 /* say "Drive: " ramDrive ", info: " driveInfo say "volume label = " word(driveInfo,4) */ end /* do */ end /* do */ value('RAMDRIVE', ramDrive, 'DOSENVIRONMENT') return rem 这上面的一段批处理程序不清楚是什么意思 prompt PCDR$l$n$g rem 显示 <pcdr> 的命令提示 A:\DOS\MOUSE.COM > NUL %RAMDRIVE% md PCDR cd PCDR copy A:\TPTOOLS\*.* . > NUL copy A:\PLNRCHK.BAT . > NUL copy A:\REXX.EXE . > NUL copy A:\RXDINFO.RX . > NUL copy A:\COMMAND.COM . > NUL rem 这里是将软盘中的这些文件copy到什么地方去了? SET COMSPEC=%RAMDRIVE%\PCDR\COMMAND.COM call plnrchk.bat if "%PLNRID%"=="NA" goto EXIT echo Please wait, unpacking diagnostics ... a:\tpdiag.exe -o > NUL a:\TPPLGE2.EXE -o > NUL rem 请问参数 -o 代表什么意思? :ENDLOOP1 echo Done. :LOOP2 echo. echo Please insert PC-Doctor DOS #145-2 Disk and pause if not exist a:\tpdiag2.exe goto loop2 echo Please wait, unpacking diagnostics ... a:\tpdiag2.exe -o -d > NUL a:\tpplg91.exe -o > NUL if "%PLNRID%" == "SYSID96" goto TPPLGW7 a:\tpplgw4.exe -o > NUL a:\tpplgw6.exe -o > NUL if "%PLNRID%" == "SYSID91" goto ENDLOOP4 :TPPLGW7 a:\tpplgw7.exe -o > NUL PLNRID2.EXE 168C/1014/1014/057E IF NOT ERRORLEVEL 1 GOTO SKPPLGW7 COPY /Y .\*.ABG *.INI > NUL rem 请问 copy /y.\*.ABG *.INI > NUL 是什么意思? :SKPPLGW7 a:\TPPLGM7.EXE -o > NUL COPY /Y .\HSF_ICH.4C6 *.INI > NUL PLNRID2.EXE 8086/3582 IF NOT ERRORLEVEL 1 GOTO ENDLOOP2 A:\TPPLGD9.EXE -o > NUL GOTO ENDLOOP4 :ENDLOOP2 echo Done. rem 第二个软盘放入后,是否就不会执行下面的指令了? :LOOP3 echo. echo Please insert PC-Doctor DOS #145-3 Disk and pause if not exist A:\TPPLGD10.EXE goto loop3 echo Please wait, unpacking diagnostics ... COPY A:\TPPLGD10.EXE . > NUL :ENDLOOP3 echo Done. :LOOP4 echo. echo Please insert PC-Doctor DOS #145-4 Disk and pause if not exist A:\TPPLGD10.002 goto loop4 echo Please wait, unpacking diagnostics ... COPY /b TPPLGD10.EXE+A:\TPPLGD10.002 TPPLGD10.EXE /y > NUL TPPLGD10.EXE -o > NUL DEL TPPLGD10.EXE > NUL :ENDLOOP4 echo Done. SET OPTIONS= TPTSR1.COM if "%PLNRID%" == "SYSID91" goto SYSID91 if "%PLNRID%" == "SYSID96" goto SYSID96 :SYSID91 COPY /Y .\SYSID91\*.* . > NUL TPTSR.EXE 0F 00 0 GOTO CHKINI :SYSID96 COPY /Y .\SYSID96\*.* . > NUL TPTSR.EXE 0F 00 0 GOTO CHKINI :CHKINI IF EXIST PCDR.INI GOTO RUNPCDR echo. echo. echo Missing PCDR.INI file. goto EXIT :RUNPCDR pcdr %OPTIONS% :EXIT 在第一章软盘放入后,自动执行了以上的autoexec.bat,可是当按照提示放入第二章软盘后,不会再出现 "Please insert PC-Doctor DOS #145-3 Disk and" 这个提示,不知道是什么原因造成的。 |
|
| 第2楼 Climbing | 发表于 2006-03-17 08:49 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
楼主问的问题,要么就是一些DOS基础知识方面的问题,要么就跟具体的应用环境有关系。
在我看来,有些命令是不可能出现在DOS环境中的,有可能这是IBM专门为PC-DOS的批处理定制的命令,例如前面的DO循环命令及words()函数等。 |
|
| 第3楼 Climbing | 发表于 2006-03-17 15:47 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
:: 这是设置DOS提示符的命令,提示符会变成: PCDR<当前盘符>
prompt PCDR$l$n$g A:\DOS\MOUSE.COM > NUL :: 注意下面的命令将当前盘由A:盘改为虚拟内存盘 %RAMDRIVE% md PCDR cd PCDR :: 现在的当前目录是:%RAMDRIVE%\PCDR,下面的命令中用.来表示这个目录 :: 而下面的copy命令们就是将A:盘的对应文件复制到上面的目录中 copy A:\TPTOOLS\*.* . > NUL copy A:\PLNRCHK.BAT . > NUL copy A:\REXX.EXE . > NUL copy A:\RXDINFO.RX . > NUL copy A:\COMMAND.COM . > NUL rem 这里是将软盘中的这些文件copy到什么地方去了? :: 所以,这个问题的答案就是,这些文件copy到虚拟内存盘的PCDR目录中了。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |