![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-19 13:16 |
共 47,814 主题排行 / 349,908 发帖 / 今日 0 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » [求助][讨论]有没有高手可以在纯dos下做到这个功能? |
| 可打印版本 3,364 / 33 |
| 第1楼 peiliqin | 发表于 2008-07-27 02:31 |
| 初级用户 发帖 16 积分 34 | |
|
[求助][讨论]有没有高手可以在纯dos下做到这个功能? 有没有高手可以在纯dos下做到这个功能?
SMARTDRV.EXE if exist a:\jieguo.txt del a:\jieguo.txt md5 -c n:\tools\cfcsys.txt >a:\jieguo.txt for /f "tokens=2" %%W in (d:\fix\cfcsys.txt) do if /i "%%W" NEQ "OK" goto end pause exit :end command.com /c n:\gamemenu\system\fix.bat >nul pause n:\tools\cfcsys.txt 文件实际存在。 不管用什么方法,什么软件,谁能实现这个要求?向高手求救了。!!!!!! 补充:cfcsys.txt的内容(只是范例) \89fe32de8587b0dfd76efce00396eb56 *c:\\windows\\NOTEPAD.EXE \82b8373ed12a602820108f6154bf0c4c *c:\\windows\\explorer.exe \b313c22a27d1d8677cdec778346d817e *c:\\windows\\regedit.exe \65a70ec4649499399b50ac75d911a501 *c:\\windows\\system32\\Rundll32.exe \9cabf264ce1177cafbbba4b910a44c79 *c:\\windows\\system32\\Services.exe \06955b9a1ce9f54be0193030ef0a6e0e *c:\\windows\\system32\\Winlogon.exe \722a247acb86960a708528120759266d *c:\\windows\\system32\\cmd.exe \3502114e4cb83e491a80fc361c1dc7b7 *c:\\windows\\system32\\csrss.exe jieguo.txt的内容 c:\windows\NOTEPAD.EXE: OK c:\windows\explorer.exe: OK c:\windows\regedit.exe: OK c:\windows\system32\Rundll32.exe: OK c:\windows\system32\Services.exe: OK c:\windows\system32\Winlogon.exe: OK c:\windows\system32\cmd.exe: OK c:\windows\system32\csrss.exe: OK [ Last edited by peiliqin on 2008-7-29 at 12:12 AM ] |
|
| 第2楼 peiliqin | 发表于 2008-07-27 21:24 |
| 初级用户 发帖 16 积分 34 | |
|
用其他的方法,变通一下,或者有没有其他的dos软件可以做到?
|
|
| 第3楼 peiliqin | 发表于 2008-07-28 00:33 |
| 初级用户 发帖 16 积分 34 | |
|
用其他的方法,变通一下,或者有没有其他的dos软件可以做到? 怎么没有人回答啊?
|
|
| 第4楼 peiliqin | 发表于 2008-07-28 00:38 |
| 初级用户 发帖 16 积分 34 | |
|
听说,dos下有个awk可以做到,可是看不懂,搞的一头雾水。请教awk高手帮帮忙了啊。
|
|
| 第5楼 DOSforever | 发表于 2008-07-28 00:41 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
我不知道 d:\fix\cfcsys.txt 文件具体的内容是什么,按照你原来的意思,只要有一行中的第二个字不是 "OK" 的话就 goto end ,也就是每一行都要有 "OK" 字样,简单点的话用 find /v 配合 errorleverl 来判断。还有,为什么要用 command/c ?
|
|
| 第6楼 quya | 发表于 2008-07-28 19:53 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
看他的程序,可以猜到 CFCSYS.txt 的内容是 MD5 码 校验的结果, 只要有一个文件不通过, 就运行 FIX.BAT, FIX.BAT想必就是对没通过校验的文件进行修复之类的工作。
怎么做,我不知道,等其他人吧。 DOS因为有了FOR才变得丰富多彩,纯DOS下就那么几个命令,无法取巧,除非用第三方程序。 |
|
| 第7楼 DOSforever | 发表于 2008-07-28 21:17 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
看看好像很简单,没什么复杂的。问题是他的 a:\jieguo.txt 好像和 d:\fix\cfcsys.txt 没什么关系,他为什么不去验证 a:\jieguo.txt 中的 OK ,而去找 d:\fix\cfcsys.txt 中的 OK ?
|
|
| 第8楼 peiliqin | 发表于 2008-07-29 00:15 |
| 初级用户 发帖 16 积分 34 | |
Originally posted by quya at 2008-7-28 07:53 PM: cfcsys.txt是标准文件,jieguo.txt是个根据cfcsys.txt生成的临时文件。 |
|
| 第9楼 lianjiang2004 | 发表于 2008-07-29 07:45 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
可用截取每行最后两位字符,若不等于OK,就修复的方法。
strings就可以。 |
|
| 第10楼 peiliqin | 发表于 2008-07-29 07:59 |
| 初级用户 发帖 16 积分 34 | |
Originally posted by DOSforever at 2008-7-28 12:41 AM: 试了一下,当文件内容有改变的时候,总是不能确定errorlevel的值。无法进行跳转。 |
|
| 第11楼 peiliqin | 发表于 2008-07-29 08:01 |
| 初级用户 发帖 16 积分 34 | |
Originally posted by lianjiang2004 at 2008-7-29 07:45 AM: 我也看这个参数了,就是不知道怎么取 strings的值。能不能给个确切的例子? |
|
| 第12楼 DOSforever | 发表于 2008-07-29 09:56 |
| 金牌会员 发帖 2,239 积分 4,639 | |
Originally posted by peiliqin at 2008-7-29 07:59: 我的理解是你只要有一个不是 OK,就 goto 。find/v 如果找到了一个不是 OK 的,就返回退出码0,如果没找到就返回1,说明都是 OK 。为什么“总是不能确定errorlevel的值”? |
|
| 第13楼 qzwqzw | 发表于 2008-07-29 20:18 |
| 银牌会员 发帖 636 积分 2,343 | |
|
使用 command /c 是想屏掉 fix.bat 的输出
但是仍然不明白 d:\fix\cfcsys.txt 与 n:\tools\cfcsys.txt 是什么关系 按照12楼的思路给个最简化的原型代码 可以参考一下 |
|
| 第14楼 peiliqin | 发表于 2008-07-29 21:34 |
| 初级用户 发帖 16 积分 34 | |
|
我的理解是你只要有一个不是 OK,就 goto 。find/v 如果找到了一个不是 OK 的,就返回退出码0,如果没找到就返回1,说明都是 OK 。为什么“总是不能确定errorlevel的值”?
我测试了,1跟0的效果一样。2的时候就完全是另外一个效果了。我可以在windows下的cmd查看上一个命令的返回码,但是在纯dos下,不知道怎么看。 |
|
| 第15楼 DOSforever | 发表于 2008-07-29 21:39 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
你把你试的语句贴出来
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |