Board logo

标题: [文本处理] 比较文本内容的批处理看不懂,希望懂的能帮忙解释下 [打印本页]

作者: smkill    时间: 2013-12-2 20:25     标题: 比较文本内容的批处理看不懂,希望懂的能帮忙解释下

  1. @echo off
  2. cd .>C.txt  ::这行是干什么用的,看不懂用来做什么!
  3. for /f %%a in (A.txt) do (
  4. findstr "%%a" B.txt >>C.txt||echo %%a >>C.txt ::||echo %%a >>C.txt这里管道符也看不懂什么意思?
  5. )  
复制代码
刚学批处理,看不懂的代码,希望懂的能帮忙解释下,谢谢!
作者: 522235677    时间: 2013-12-2 20:47

本帖最后由 522235677 于 2013-12-2 20:51 编辑

cd .>C.txt  生成一个0字节大小的文件 c.txt
for /f %%a in (A.txt) do ( for 循环,读取A.txt内容
findstr "%%a" B.txt >>C.txt||echo %%a >>C.txt  查找b.txt是否存在%%a内容,如果不存在就把这个%%a保存到a.txt??
还是直接将查找结果写入到C.txt,如果写入失败就把%%a写入C.TXT?

这个是谁写的代码?
这个%%a的意思你知道吗?这个你去看看for教程
作者: smkill    时间: 2013-12-2 21:18

回复 2# 522235677
在看for的教程,看了二次,有些还没理解!%%A,就是变量A吗
作者: smkill    时间: 2013-12-2 21:25

这个是这样的我有个文本A:里面有这样一些内容比如姓名,文本B里面有姓名,地址,电话号码,希望就是将A和B去比较,然后生成一个文本C,如果在 文本B里能找到A里的姓名,就把B这行复制过去,如果没有就把A本身写过去!
cd .>C.txt  生成一个0字节大小的文件 c.txt
这句没有难道不行,结果应该不是一样的吗?.我去试试,没想明白的是为什么会要加这么一句!
作者: apang    时间: 2013-12-2 21:50

回复 4# smkill


      如果没有cd .>C.txt这一句,且存在同名的C.txt文件,就会追加到原C.txt而不是创建新的C.txt
作者: 522235677    时间: 2013-12-3 19:59

回复 3# smkill


    我当初学的时候,看for教程看了十几遍都不太明白
作者: DAIC    时间: 2013-12-4 09:17

  1. @echo off
  2. (for /f %%a in (A.txt) do (
  3.     findstr "%%a" B.txt || echo,%%a
  4. ))>C.txt
复制代码
这样可以省掉那个cd命令




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