grep命令行用“or”从dos窗口(gnu grep)

我试图创build一个Windows 7的.bat文件,使用GNU Grep(为Win32目标编译的grep)。 我遇到了使用|的expression式的语法问题 (或),因为DOS命令认为我正在使用它作为pipe道/redirect。 这是一个示例inputfoo.txt:

aaa bbb ccc aaa bbb ccc 

所以我尝试一个简单的testing:

 grep aaa foo.txt 

结果:

 aaa aaa bbb ccc 

到现在为止还挺好。 但是我真的需要提取aaa或bbb,所以我使用这个expression式:(aaa | bbb)ex:

 grep (aaa|bbb) 

给我:

 'bbb)' is not recognized as an internal or external command, operable program or batch file. 

我已经尝试了各种报价,但还没有达到正确的组合。 我需要从DOS解释器保护string,但它仍然是有用的grep。 我阅读手册页和网页文档,没有什么东西似乎适合我所要做的。

有谁知道如何做到这一点? 谢谢。

需要引号,并用\逃脱了管道:

 grep "aaa\|bbb" foo.txt 

 $ cat foo.txt aaa bbb ccc aaa bbb ccc $ grep "aaa\|bbb" foo.txt aaa bbb aaa bbb ccc