从拖尾日志中选择一个字符串

时间:2015-09-08 08:22:39

标签: powershell batch-file grep tail

我有一个应用程序日志,我正在尝试编写一个批处理文件,该文件将拖尾日志并返回包含“队列大小”的字符串,以便可以显示更新队列大小。基本上Windows相当于:

Third Party Libraries:
    ...
    ICU support.............yes

Additional libraries........-LD:\Qt\icu\lib

根据我的阅读,我需要使用Windows PowerShell。我设计了以下脚本:

tail -f app.log | grep "queue size"

这给了我以下错误:

powershell -command Select-String -Path C:\logs\app.log -Pattern "queue size"

虽然现状不起作用,但是它会不断更新当前的逻辑吗?

3 个答案:

答案 0 :(得分:2)

不,PowerShell命令将不会继续读取日志,因为它正在更新。 PowerShell无法真正处理此任务,因此您最好抓住Unix $scope.chartOptions = { chart: { type: 'lineChart', yDomain: [0,5], xDomain: [moment(data.startDate).valueOf(), moment(data.endDate).valueOf()], useInteractiveGuideline: true, interactiveLayer: { showGuideLine: true }, lines: { },
xScale: d3.time.scale(), xAxis: { showMaxMin: true, rotateLabels: -45, tickFormat: function(d) { return d3.time.format('%Y-%m-%d')(new Date(d)); } }, height: 350, margin : { bottom: 100 } } };
命令的Windows端口(例如来自GnuWin32UnxUtils)并使用它使用批处理tail命令:

find

答案 1 :(得分:1)

您需要将命令包装在双引号中并使用单引号作为模式:

powershell -command "Select-String -Path C:\logs\app.log -Pattern 'queue size'"

答案 2 :(得分:0)

这应该做:

cat c:\path\to\app.log -tail 100 -wait | select-string "queue size"

cat是Get-Content的别名... -wait参数将使其等待日志更新。