我有一个应用程序日志,我正在尝试编写一个批处理文件,该文件将拖尾日志并返回包含“队列大小”的字符串,以便可以显示更新队列大小。基本上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"
虽然现状不起作用,但是它会不断更新当前的逻辑吗?
答案 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: {
},
命令的Windows端口(例如来自GnuWin32或UnxUtils)并使用它使用批处理
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
}
}
};
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参数将使其等待日志更新。