Board logo

标题: 怎样识别一个文件内可能的几种关键词后再做相应的动作 [打印本页]

作者: ka56     时间: 2006-12-22 03:49    标题: 怎样识别一个文件内可能的几种关键词后再做相应的动作
再偷懒一下,之前没有基础的真的头大啊,,再缠住大虾们了~~

比如有个文档d:\123.txt,这个文档可能里面有"我","你","他""它"四个关键词,怎样识别并做下面的动作:

当搜到关键词是"我",将"A"写入文本"大.txt"

当搜到关键词是"你",将"B"写入文本"中.txt"

当搜到关键词是"他"或者是"它",将"C"写入文本"小.txt"

Last edited by ka56 on 2006-12-21 at 05:36 PM ]

作者: ka56     时间: 2006-12-22 03:53
看昨天一个贴子,知道可能可以用
findstr ...
if errorlevel ...
但还是写不来~~~

: ))

作者: lxmxn     时间: 2006-12-22 04:36

  D:\123.txt 文件中是只有这4个字中的一个,还是有可能有若干个呢?

作者: ka56     时间: 2006-12-22 04:44
Originally posted by lxmxn at 2006-12-21 15:36:

  D:\123.txt 文件中是只有这4个字中的一个,还是有可能有若干个呢?


找到关键词就可以...条件成立

Last edited by ka56 on 2006-12-21 at 03:45 PM ]

作者: ka56     时间: 2006-12-22 06:37
再来D下,嘿嘿~~

作者: ka56     时间: 2006-12-22 09:12
看看哪位大虾有时间指教下,先谢了~~

作者: fjcyz     时间: 2006-12-22 20:25
@echo off
:start
findstr /c:"我" D:\123.txt
if errorlevel 1 goto 4
goto 3
:3
@echo 搜索成功
pause
goto exit
:4
@echo 无法搜索到此关键字
pause
:exit
exit

Last edited by fjcyz on 2006-12-22 at 07:33 AM ]

作者: ka56     时间: 2006-12-22 23:28
Originally posted by fjcyz at 2006-12-22 07:25:
L ...


谢谢兄弟!!!
好象只完成一个搜索动作,怎样完成3次(或4次)的搜索呢?
就是"我"搜后,接着去搜索"你","他"和"它"

Last edited by ka56 on 2006-12-22 at 10:34 AM ]

作者: fjcyz     时间: 2006-12-22 23:39
不是吧~~~

findstr /c:"我" D:\123.txt

把这个关键字改一下就可以了.

作者: lxmxn     时间: 2006-12-22 23:39


@echo off
set file=d:\123.txt
findstr "我" %file% >nul && >大.txt echo A
findstr "你" %file% >nul && >大.txt echo B
findstr "他" %file% >nul && >小.txt echo C || findstr "它" %file% >nul && >小.txt echo C
exit /b 0

作者: namejm     时间: 2006-12-22 23:43
  最后一句 findstr 可以合并为 findstr "他 它" d:\123.txt>nul&&echo C>小.txt

作者: fjcyz     时间: 2006-12-23 00:07
>nul && ||

兄台,这三个符号可否解是一下...

或运算符与运算符吗? 有没有非运算符?

作者: ka56     时间: 2006-12-23 00:56
刚试下可以了.
谢谢lxmxn,谢谢版主,谢谢fjcyz......


如果一个文件夹里有123.txt,124.txt,125.txt.....(递进1)等N个文档,怎样逐个查呢?

作者: namejm     时间: 2006-12-23 01:45

@echo off
:: 假设连续递增到200
for /l %%i in (123,1,200) do (
find "我" d:\%%i.txt>nul&&echo A>大.txt
find "你" d:\%%i.txt>nul&&echo B>中.txt
findstr "他 它" d:\%%i.txt>nul&&echo C>小.txt
)

  实在想不通你为什么会要这么操作,如果把你的真实意图说出来的话,效率应该会大为提高的。

Last edited by namejm on 2006-12-22 at 06:29 PM ]

作者: redtek     时间: 2006-12-23 01:53
是挺奇怪的~:)
后来看看楼主发过的贴子……

不打开浏览器能自动识别一个网页出来的3种结果吗?
http://www.cn-dos.net/forum/viewthread.php?tid=25849&fpage=1&highlight=%2Bka56

该不会是楼主想要 find 取到的网页内容中是否有需要的3种结果,
然后根据不同的结果进行不同的命令操作?

作者: ka56     时间: 2006-12-23 02:40
Originally posted by namejm at 2006-12-22 12:45:


单独写进:
find "我" d:\%%i.txt>nul&&echo A>大.txt
find "你" d:\%%:i.txt>nul&&echo B>中.txt
findstr "他 它" d:\%%i.txt>nul&&echo C>小.txt
是有效的,但加入for /l %%i in (123,1,200) do ()就没结果了,是不是找不到d:\%%:i.txt?

作者: ka56     时间: 2006-12-23 02:54
Originally posted by redtek at 2006-12-22 12:53:
是挺奇怪的~:)
后来看看楼主发过的贴子……

不打开浏览器能自动识别一个网页出来的3种结果吗?
http://www.cn-dos.net/forum/viewthread.php?tid=25849& ...

正是....
我菜,怕连问都不好,所以就分开了,
我的本意是要做到连续下载并连续识别并处理,

连续下载可以了:

@echo off
for /l %%a in (001,1,999) do (
wget -O 321%%a.htm
http://www.cn-dos.net/forum/viewpro.php?uid=321%%a
sleep 5000
)


单个.htm的识别也做出来了:

find "指定的用户不存在或已被删除" d:\321001.htm>nul&& echo 321001>>存在的.txt



怎么做到不断的下载并处理指定的页数范围...呢?

如果这个页数范围能做到从文档里逐个提取就更完美了.... : )))

Last edited by ka56 on 2006-12-22 at 02:00 PM ]

作者: lxmxn     时间: 2006-12-23 03:01

  搞了半天,原来是批量下载论坛的帖子啊?

  鼓励一下……写好了别忘了发上来用用。 =_=

作者: ka56     时间: 2006-12-23 03:05
这些代码能做出来的话,就会很方便的自动在网上寻找有用的信息,, : D

作者: ka56     时间: 2006-12-23 03:09
Originally posted by lxmxn at 2006-12-22 14:01:

  搞了半天,原来是批量下载论坛的帖子啊?

  鼓励一下……写好了别忘了发上来用用。 =_=


靠大虾继续哈哈~~

我只有想法什么都不会,,, : ( : ))

作者: 26933062     时间: 2006-12-23 07:26
Originally posted by fjcyz at 2006-12-22 11:07:
>nul && ||

兄台,这三个符号可否解是一下...

或运算符与运算符吗? 有没有非运算符?




这是dos管道命令

>nul 意思是把内容输入到空设备,(为了保持屏幕清洁)
&& 意思是前面的命令如果正确执行就接着执行&&后面的命令,否则就直接运行下面的命令
|| 意思是和上面那个&&正好相反

作者: usb2008     时间: 2006-12-24 22:57    标题: DDDDDDD
精彩