2012-02-02 226 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?