您好我正在使用findstr命令根据字符串过滤文件并将该输出重定向到单独的文件。
findstr /C:"C=EODRevaluationProcess Temp table:TMP_EOD_REVAL_DATA" "C:\Users\Desktop\abc.txt" > C:\Users\Desktop\xyz.txt
pause
findstr /C:"sendSPPJMSMessage><Finished publishing [0] messages" "C:\Users\Desktop\abc.txt" > "C:\Users\Desktop\xyz.txt"
pause
findstr /C:"POS_HOURLY_DATA : actualTable : POS_HOURLY_DATA_" "C:\Users\Desktop\abc.txt" > "C:\Users\Desktop\xyz.txt"
我希望所有过滤后的行都保存在同一个文件xyz中。 但只有第一个findstr命令的输出在xyz中保存。
任何人都可以提出任何想法
谢谢。
答案 0 :(得分:1)
您正在使用>
运算符将输出重定向到文件,如果文件不存在,则会创建该文件并将其内容替换为输出。
如果要附加到文件,而不是替换其内容,可以使用>>
运算符。
答案 1 :(得分:0)
没有理由对同一个文件运行FindStr
三次。将所有搜索字符串放在一个命令中也会阻止您的覆盖问题。
@FindStr /I^
/C:"some string"^
/C:"another string"^
/C:"and a bigger string"^
"source.txt" > "output.txt"
您注意到我使用插入符号^
来逃避换行符,以便您的字符串更易于维护(每个字符串都属于他们自己的行) < / p>