标题: 怎样识别一个文件内可能的几种关键词后再做相应的动作
[打印本页]
作者: 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
作者: 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
作者: 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
精彩