![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 07:19 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]半年多都没解决的纯DOS批处理问题 |
| 可打印版本 2,543 / 31 |
| 第1楼 xiaofking | 发表于 2008-01-11 14:51 |
| 初级用户 发帖 31 积分 72 | |
|
[已解决]半年多都没解决的纯DOS批处理问题 已经求助过很多批处理的高手,但纯DOS下真的太难实现,findstr用不了,大家帮帮忙吧,是否借助第三方工具能实现,简单介绍如下:
纯DOS下,运行某DOS程序Gdisk,屏幕输出文本内容如下 AAA BBB CCC //第一行 xxx yyy zzz //第二行 以上字母皆为替代,只是大概输出如此(输出的这些字符串全部显示在纯DOS画面中,没有生成文本文件) 现在要求判断Gdisk的以上输出,如果第二行中有出现字符串“A01”或"A02",就执行语句go1,如果没有就重启 大概就是这样了,大家提些思路好吗,是否要用到类似input,askenv,aset,xset,strings,wbat,be这些第三方工具?能否给出批处理的大概写法 [ Last edited by xiaofking on 2008-1-14 at 01:20 PM ] |
|
| 第2楼 不得不爱 | 发表于 2008-01-11 14:53 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
用NSET就可以解决这个问题!
|
|
| 第3楼 xiaofking | 发表于 2008-01-11 15:02 |
| 初级用户 发帖 31 积分 72 | |
|
版主。。。能不能根据我的流程写几句看看
|
|
| 第4楼 xiaofking | 发表于 2008-01-11 15:05 |
| 初级用户 发帖 31 积分 72 | |
|
或者给我一个nset的使用方法行不行,我在网上只能找到这么一句
Nset.com 从输出中取得变量以设置,FINDCD -a|NSET CDROM=$1 |
|
| 第5楼 qzwqzw | 发表于 2008-01-11 19:30 |
| 银牌会员 发帖 636 积分 2,343 | |
|
只用dos自带的find就可以了
如果只是忽略大小写查找A01,那么 gdisk| find "A01" /i>nul if errorlevel 1 goto end :go1 ::其它语句 :end 如果指定在第二行忽略大小写查找A01,那么 gdisk | find "" /v/n | find "[2]" | find "A01" /i>nul if errorlevel 1 goto end :go1 ::其它语句 :end |
|
| 第6楼 xiaofking | 发表于 2008-01-11 21:38 |
| 初级用户 发帖 31 积分 72 | |
|
find 在纯DOS无法使用....
|
|
| 第7楼 xiaofking | 发表于 2008-01-11 21:39 |
| 初级用户 发帖 31 积分 72 | |
|
纯DOS也无法指定在第几行查找的
|
|
| 第8楼 xiaofking | 发表于 2008-01-11 21:51 |
| 初级用户 发帖 31 积分 72 | |
|
find可以用...但你上面的方法是不行的
|
|
| 第9楼 zh159 | 发表于 2008-01-11 21:59 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
纯DOS下find是外部命令,所以你得找一个DOS下的find
|
|
| 第10楼 xiaofking | 发表于 2008-01-12 00:35 |
| 初级用户 发帖 31 积分 72 | |
|
试过了,无论是运行nset还是find,在纯DOS下都会出现
“未准备写驱动器A”A:放弃,R:重试,F:失败? 证明nset和find都是需要写入缓存的命令。。。没作用啊。。。 |
|
| 第11楼 fastslz | 发表于 2008-01-12 00:40 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by xiaofking at 2008-1-12 00:35: 这里有找答案 http://www.cn-dos.net/forum/viewthread.php?tid=36718&fpage=1&highlight= |
|
| 第12楼 xiaofking | 发表于 2008-01-12 00:55 |
| 初级用户 发帖 31 积分 72 | |
|
仔细看过了,问题是我没办法生成一个txt文件,而且 | 这个符号在纯DOS也无法使用,Gdisk -a 后直接输出在画面上的
|
|
| 第13楼 xiaofking | 发表于 2008-01-12 01:44 |
| 初级用户 发帖 31 积分 72 | |
|
找了N多个工具,其实问题就是在于如何不用输出txt文件也可以实现这个功能,如果要输出txt文件的话就简单了
|
|
| 第14楼 fastslz | 发表于 2008-01-12 01:45 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
“未准备写驱动器A”A:放弃,R:重试,F:失败?
11楼看到了吗 Originally posted by fastslz at 2008-1-4 12:10: 我猜测分析下是什么原因吧 猜测1: 你的电脑应该有软驱的,你启动的DOS下没有find.com外部命令,而Path变量里有A:\,这个时候DOS就尝试读取A:\目录下寻找find.com,所以出现一般性错误读驱动器A:\。 猜测2: 你的电脑应该有软驱的,你启动的DOS下没有find.com外部命令,你就拷贝了xp下的find.exe在纯DOS用,xp的find是32位子程序在纯dos下用需要32位支持文件CWSDPMI,而Path变量里有A:\,这个时候DOS就尝试读取A:\目录下寻找CWSDPMI.exe,所以出现一般性错误读驱动器A:\。 无法生成一个txt文件,不是因为 | 符号在纯DOS也无法使用,在猜测2里已经说明了,是因为find 命令没执行成功,没执行成功当然不会生成txt文件 |
|
| 第15楼 terse | 发表于 2008-01-12 01:57 |
| 银牌会员 发帖 946 积分 2,404 | |
|
lmod 应该可以指定行的 你gdisk先输出不就可以了 是不是一定要输出在画面上呢
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |