我有包含多行的txt文件,我需要创建一个日志,以便在日志中存储以下信息:
文件名
最后修改的
包含单词"有效"
我已将一个.bat文件放在一起,但它将输出分成两行。
type nul > FilesReceived.txt & for %f in (*.log) do (
find /c "valid" %f & echo(%~tf)>> LogsReceived.txt
)
使用type nul我清除FilesReceived.txt文件的内容。然后我遍历log类型的文件 然后我计算包含单词valid和find / c的行,并且我也回显最后修改的时间戳。
然而输出如下:
---------- transaction_20160505_1005A.log:6492
2016/06/10 04:37
我不知道是什么产生了这些破折号。最终,我希望每个日志文件有一行,如下所示:
transaction_20012B.log:6492 10/06/2016 04:37 p.m。
希望你们能帮帮我。
谢谢,
布鲁斯
答案 0 :(得分:2)
find
在处理文件时打印短划线。当从STDIN处理时(type file.ext /c |find "string"
仅打印计数),它没有。
有一个没有换行符的技巧:<nul set /p"=Hello"
如果您可以使用其他订单,那么组装起来非常容易::
@echo off
for %%f in (*.bat) do (
<nul set /p "=%%f %%~tf "
type %%f|find /c "echo"
)
如果你想保留你的订单,那就更复杂了:你不能强迫find
在没有换行的情况下写作,所以你必须使用一个技巧(另一个{{1} }):
for
答案 1 :(得分:1)
您可以通过另一个SqlConnection conn = new SqlConnection(@"Data Source=192.168.1.101;Initial Catalog=Imatismos;user ID=admin;Password=1234");
获取find
命令的输出并将其放在您希望的任何地方:
for