中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 05:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样写一个在文件中找字符串的批处理,非常急 查看 979 回复 5
楼 主 怎样写一个在文件中找字符串的批处理,非常急 发表于 2008-01-09 13:09 ·  中国 山东 烟台 联通
中级用户
★★
积分 257
发帖 123
注册 2008-01-05 11:08
18年会员
UID 107722
性别 男
来自 烟台
状态 离线
各位i大哥大姐,怎样写一个在文件中找字符串的批处理
非常急啊
急不可耐

:lol::lol::lol:

例如:
现在有一个名为“Import_FeeMst.txt”的文本文件
文件里如果有“SQLState = 23000, NativeError = 2627”这样的字符串
就GOTO :_ERROR

请问应该怎样写?
谢谢
路 是自己选的
学习 是为了具备解决问题的能力
2 发表于 2008-01-09 13:15 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线

type Import_FeeMst.txt|findstr "SQLState = 23000, NativeError = 2627"&&goto error||goto another
3 发表于 2008-01-09 13:58 ·  中国 山东 烟台 联通
中级用户
★★
积分 257
发帖 123
注册 2008-01-05 11:08
18年会员
UID 107722
性别 男
来自 烟台
状态 离线
万分感谢
路 是自己选的
学习 是为了具备解决问题的能力
4 发表于 2008-01-15 16:10 ·  中国 山东 烟台 联通
中级用户
★★
积分 257
发帖 123
注册 2008-01-05 11:08
18年会员
UID 107722
性别 男
来自 烟台
状态 离线
发现问题了
SQLState = 23000, NativeError = 2627
字符串中的空格
“ ”是“或”的意思吧

type ftp.log|findstr "1 2 3 0"&&goto :error
结果命令行解释器中把所有含“1”,“2”,“3”,“0”的行
全都列出来了
路 是自己选的
学习 是为了具备解决问题的能力
5 发表于 2008-01-15 16:28 ·  中国 山东 烟台 联通
中级用户
★★
积分 257
发帖 123
注册 2008-01-05 11:08
18年会员
UID 107722
性别 男
来自 烟台
状态 离线
问题解决了
加一个/C:参数

type ftp.log|findstr /C:"1 2 3 0"&&goto :error

就行了
路 是自己选的
学习 是为了具备解决问题的能力
6 发表于 2008-01-15 16:28 ·  中国 山东 烟台 联通
中级用户
★★
积分 257
发帖 123
注册 2008-01-05 11:08
18年会员
UID 107722
性别 男
来自 烟台
状态 离线
FINDSTR
在文件中寻找字符串。

FINDSTR
]
strings filename]

/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索
匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
filename
指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
"hello there"。

一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类别出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
字符类别: 任何在字符集中的字符
补字符类别: 任何不在字符集中的字符
范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\<xyz 字位置: 字的开始
xyz\> 字位置: 字的结束
路 是自己选的
学习 是为了具备解决问题的能力
论坛跳转: