嗨,我正在使用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"
您会注意到我使用了插入符号,^
来转义行返回,以便您的字符串更易于维护,(每个字符串都有自己的行)