2012-02-02 231 views
0

我将cvs diff的输出重定向到log.txt文件中。Windows批处理命令忽略一些文件行?

C:\Temp> cvs diff -b -B -r 1.5 -r 1.6 Project\src\Sample.java > log.txt 

log.txt文件在执行上述命令所生成的内容是这样的:

Index: project/src/Sample.java 
=================================================================== 
RCS file: \repobase/src/Sample.java,v 
retrieving revision 1.5 
retrieving revision 1.6 
diff -r1.5 -r1.6 
78a79,82 
>  public java.lang.Class getJavaClass() { 
>   return Sample.class; 
>  } 
> 
92c96 
<   return Demo.getparentClass(this.getClass()); 
--- 
>   return MyClass.clazz; 

此文件与<>开始的所有线是没有必要的。我想忽略所有这些行,只是将最小的休息压入log.txt文件。我怎样才能通过Windows命令行来做到这一点?

回答

1

也许cvs diff --brief选项会给你你想要的。

如果没有,那么你可以管diff输出的FINDSDTR,让它过滤线

cvs diff -b -B -r 1.5 -r 1.6 Project\src\Sample.java | findstr /vbl "< >" > log.txt 

/v选项是指不包含任何字符串的

/B打印线选项意味着匹配搜索字符串开始在每一行

/升的开始是指文字的搜索字符串(相对于正则表达式)

灼烧ch字符串在每个空格处被拆分,因此“<>”实际上是2个搜索字符串。

欲了解FINDSTR的更多帮助,请使用`FINDSTR /?'。

如需更多帮助,请参阅What are the undocumented features and limitations of the Windows FINDSTR command?