中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 09:51
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 大家帮我看看这个p错在哪里?
可打印版本  2,445 / 32
第1楼 anqing 发表于 2007-02-11 22:51
高级用户 发帖 413 积分 859
大家帮我看看这个p错在哪里?
@echo off

for /f "delims=" %%i in ('findstr /x /b "我 你 有" test1.txt') do echo %%i

pause


本意,是想查找txt文件中,含 有“我”或“你”,或“有”这三个字,只要txt中任意一行,含有以上的三个字中的一个,就显示出来
??
第2楼 ccwan 发表于 2007-02-11 23:22
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
再想办法吧。

[ Last edited by ccwan on 2007-2-11 at 11:30 PM ]
第3楼 anqing 发表于 2007-02-11 23:38
高级用户 发帖 413 积分 859
有知道的,帮我改一下,我是弄不出来了
第4楼 anqing 发表于 2007-02-12 00:53
高级用户 发帖 413 积分 859
@echo off
set a=我
set b=你
set c=有
for /f "delims=" %%i in ('findstr /i %a% test1.txt') do echo %%i
for /f "delims=" %%i in ('findstr /i %b% test1.txt') do echo %%i
for /f "delims=" %%i in ('findstr /i %c% test1.txt') do echo %%i
pause
是这样的,但好像代码太长了,能不能精简一下?
在有,我想在显示的句子前面加一个它所在txt中的行号,如何能做到?
第5楼 ccwan 发表于 2007-02-12 01:00
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
你这样的话,输出的内容和原来文件内容的顺序就不一样了,不是吗?不考虑顺序吗?
第6楼 anqing 发表于 2007-02-12 01:11
高级用户 发帖 413 积分 859
不考虑,只要能输出句子,和它所在行的行号,重复也没有关系
txt文件内容如下‘
dim a
set a=CreateObject("Wscript.Shell")
Do
a.run "11.exe"
Wscript.Slleep 60000
Loop
最美的十大精典爱情句子

1) I love you not because of who you are, but because of who I am when I am with you.

我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。

2) No man or woman is worth your tears, and the one who is, won't make you cry.

没有人值得你流泪,值得让你这么做的人不会让你哭泣。

3) The worst way to miss someone is to be sitting right beside them knowing you can't have them.

失去某人,最糟糕的莫过于,他近在身旁,却犹如远在天边。

4) Never frown, even when you are sad, because you never know who is falling in love with your smile.

纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。

5) To the world you may be one person, but to one person you may be the world.

对于世界而言,你是一个人;但是对于某个人,你是他的整个世界。

6) Don‘t waste your time on a man/woman, who isn't willing to waste their time on you.

不要为那些不愿在你身上花费时间的人而浪费你的时间。

7) Just because someone doesn't love you the way you want them to, doesn't mean they don't love you with all they have.

爱你的人如果没有按你所希望的方式来爱你,那并不代表他们没有全心全意地爱你。

8) Don't try so hard, the best things come when you least expect them to.

不要着急,最好的总会在最不经意的时候出现。

9) Maybe God wants us to meet a few wrong people before meeting the right one, so that when we finally meet the person, we will know how to be grateful.

在遇到梦中人之前,上天也许会安排我们先遇到别的人;在我们终于遇见心仪的人时,便应当心存感激。

10) Don't cry because it is over, smile because it happened.

不要因为结束而哭泣,微笑吧,为你的曾经拥有。
如何能过滤掉空格,也是个问题呀
第7楼 ccwan 发表于 2007-02-12 01:13
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
既然不要原来顺序,还要行数?
如不要行数,我有代码给你
第8楼 vkill 发表于 2007-02-12 01:16
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
语法就不正确怎么感觉
第9楼 vkill 发表于 2007-02-12 01:17
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
还不如直接type .txt|findstr
第10楼 anqing 发表于 2007-02-12 01:24
高级用户 发帖 413 积分 859
要原来的顺序,要不,怎么确定它的行号?
这个p的意思是,查找特定的”字“,然后显示出,它所在的语句,并显示出语句在txt中的行号。
第11楼 ccwan 发表于 2007-02-12 02:01
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
版主不是给过你代码吗?在群里。那个是最简单有效的了。
第12楼 slore 发表于 2007-02-12 02:18
铂金会员 发帖 2,478 积分 5,212
@echo off
for /F "tokens=1,2,3 delims= " %%i in ("我 你 有") do (
findstr %%i 1.txt
findstr %%j 1.txt
findstr %%k 1.txt
)



上面也麻烦了

@echo off
findstr "我" 1.txt &&findstr "你" 1.txt &&findstr "有" 1.txt
pause
第13楼 slore 发表于 2007-02-12 02:20
铂金会员 发帖 2,478 积分 5,212
'findstr /x /b "我 你 有" test1.txt'

findstr的连续查询貌似不支持中文!!!!

findstr "you love 我 cry" test1.txt
就可以看出,you love cry的可以显示,但是我的不能显示出来.
第14楼 ccwan 发表于 2007-02-12 02:27
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
看来你挺喜欢我贴的“最美的十大精典爱情句子”^_^

代码如下:



在此,我要感谢namejm版主,感谢Wengier,感谢中国dos联盟论坛,感谢cctv,感谢……
第15楼 slore 发表于 2007-02-12 02:29
铂金会员 发帖 2,478 积分 5,212
忘了/i 了怪不得

你们为什么搞那么麻烦?


findstr /i "我 你 有" test1.txt
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023