如何使用批处理文件将来自多个findstr命令的所有结果重定向到同一文件



嗨,我正在使用findstr命令根据字符串过滤文件并将该输出重定向到单独的文件。

findstr /C:"C=EODRevaluationProcess  Temp table:TMP_EOD_REVAL_DATA" "C:UsersDesktopabc.txt" > C:UsersDesktopxyz.txt
pause
findstr /C:"sendSPPJMSMessage><Finished publishing [0] messages" "C:UsersDesktopabc.txt" > "C:UsersDesktopxyz.txt" 
pause
findstr /C:"POS_HOURLY_DATA : actualTable : POS_HOURLY_DATA_" "C:UsersDesktopabc.txt" > "C:UsersDesktopxyz.txt" 

我希望所有过滤的行都保存在同一个文件 xyz 中。 但只有第一个 findstr 命令的输出保存在 xyz 中。

任何人都可以提出任何想法吗

谢谢。

您使用>运算符将输出重定向到文件,如果文件不存在,该运算符将创建该文件并将其内容替换为输出。

如果要追加到文件,而不是替换其内容,可以使用>>运算符。

没有理由对同一个文件运行三次FindStr。将所有搜索字符串放在一个命令中还可以防止覆盖问题。

@FindStr /I^
/C:"some string"^
/C:"another string"^
/C:"and a bigger string"^
"source.txt" > "output.txt"

您会注意到我使用了插入符号,^来转义行返回,以便您的字符串更易于维护,(每个字符串都有自己的行)

最新更新