Board logo

标题: [文本处理] 批处理如何检查一个文件中是否有另一个文件的内容 [打印本页]

作者: ake9527    时间: 2009-8-25 14:37     标题: 批处理如何检查一个文件中是否有另一个文件的内容

如何写批处理检查一个文件中是否有另一个文件的内容.
比如有一篇文章,怎样用批处理自动检查是否存在另一个列表中的内容,(字符串相同).
并且在最后生成一个文件,将列表中有而文件中没有的内容列出来.

再举一个例子,比如我手上有一本电子的射雕英雄传,还有一份金庸群侠的名单。
我想能有一个批处理程序将名单和电子书作为参数,检索名单中的人名是否出现在该电子书中了,将那些没有出现在书中的人名整理成一份名单输出。

这个动作让人做很累(金庸迷除外),但机器来做事比较机械可行的。

[ 本帖最后由 ake9527 于 2009-8-27 09:09 编辑 ]
作者: zqz0012005    时间: 2009-8-25 20:30

只能用三方工具。
或vbs
  1. fo = "E:\文件目录"
  2. fl = "列表文件"    '为简便起见,不要把列表文件与其他文件放在同一目录
  3. set fso = CreateObject("Scripting.FileSystemObject")
  4. s = fso.OpenTextFile(fl).ReadAll
  5. for each f in fso.GetFolder(fo).Files
  6.     s = Replace(s, f.OpenAsTextStream().ReadAll, String(5,vbCrLf), 1)
  7. next
  8. fso.OpenTextFile("left.txt",2,true).Write s
复制代码

作者: ake9527    时间: 2009-8-25 21:12

谢谢。
可惜,批处理做不了这些。
作者: Lumiere    时间: 2009-8-25 21:20     标题: 回复 2楼 的帖子

版主的理解能力真强,我基本没看明白楼主意思……
作者: ake9527    时间: 2009-8-26 14:27

抱歉语言表达的问题。
再举一个例子,比如我手上有一本电子的射雕英雄传,还有一份禁用群侠的名单。
我想能有一个批处理程序将名单和电子书作为参数,检索名单中的人名是否出现在电子书中了,经那些没有出现在书中的人名整理成一份名单输出。

这个动作让人做很累(金庸迷除外),但机器来做事比较机械可行的。
作者: canyuexiaolang    时间: 2009-8-26 15:21

只能借用工具,批处理做不到吗?为嘛
作者: Batcher    时间: 2009-8-26 22:45     标题: 回复 5楼 的帖子

请把所有的问题描述全部更新到顶楼,以便他人查看。
作者: ake9527    时间: 2009-9-16 16:42     标题: 自力更生 ,解决问题

@echo off
if "%1"=="" (
  @echo Uasge: checklist.bat listfile targetfile resultfile
  goto end
)

set src_file=%1
set dst_file=%2
set show_file=%1

for /f "delims=" %%a in (%src_file%) do (
    findstr /I /R %%a %dst_file% || ECHO %%a>>%show_file%
)

:end




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2