|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『楼 主』:
[已解决]半年多都没解决的纯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 ]
|
|
2008-1-11 14:51 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2008-1-11 14:53 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
3 楼』:
版主。。。能不能根据我的流程写几句看看
|
|
2008-1-11 15:02 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
4 楼』:
或者给我一个nset的使用方法行不行,我在网上只能找到这么一句
Nset.com 从输出中取得变量以设置,FINDCD -a|NSET CDROM=$1
|
|
2008-1-11 15:05 |
|
|
qzwqzw
银牌会员
天的白色影子
积分 2342
发帖 635
注册 2004-3-6
状态 离线
|
『第
5 楼』:
只用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
|
|
2008-1-11 19:30 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
6 楼』:
find 在纯DOS无法使用....
|
|
2008-1-11 21:38 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
7 楼』:
纯DOS也无法指定在第几行查找的
|
|
2008-1-11 21:39 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
8 楼』:
find可以用...但你上面的方法是不行的
|
|
2008-1-11 21:51 |
|
|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
9 楼』:
纯DOS下find是外部命令,所以你得找一个DOS下的find
|
|
|
2008-1-11 21:59 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
10 楼』:
试过了,无论是运行nset还是find,在纯DOS下都会出现
“未准备写驱动器A”A:放弃,R:重试,F:失败?
证明nset和find都是需要写入缓存的命令。。。没作用啊。。。
|
|
2008-1-12 00:35 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
|
2008-1-12 00:40 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
12 楼』:
仔细看过了,问题是我没办法生成一个txt文件,而且 | 这个符号在纯DOS也无法使用,Gdisk -a 后直接输出在画面上的
|
|
2008-1-12 00:55 |
|
|
xiaofking
初级用户
积分 72
发帖 31
注册 2007-6-9
状态 离线
|
『第
13 楼』:
找了N多个工具,其实问题就是在于如何不用输出txt文件也可以实现这个功能,如果要输出txt文件的话就简单了
|
|
2008-1-12 01:44 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
14 楼』:
“未准备写驱动器A”A:放弃,R:重试,F:失败?
11楼看到了吗
Quote: | Originally posted by fastslz at 2008-1-4 12:10:
我猜测分析下是什么原因吧
F应该是你的光盘盘符,你启动的DOS下没有find.com外部命令,而Path变量里有%CDROM%或F:\.....,这个时候DOS就尝试读取光盘下目 ... |
|
我猜测分析下是什么原因吧
猜测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文件
|
第一高手 第二高手
我的小站
|
|
2008-1-12 01:45 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
15 楼』:
lmod 应该可以指定行的 你gdisk先输出不就可以了 是不是一定要输出在画面上呢
|
简单!简单!再简单! |
|
2008-1-12 01:57 |
|