我有一个工具可以将一些数据记录到文件中。我想拖尾文件并通过mosquitto_pub发送最后一行数据。 我已经使用了powershell“Get-Content”命令而没有成功。 这是我的命令:
Get-Content -Path "C:\test.txt" -Wait | .\mosquitto_pub.exe -t "Events"
但是mosquitto_pub没有发表任何内容。
如果我使用Get-Content -Path "C:\test.txt" -Wait
我在stdout中看到了文件的尾部。
我的解决方案出了什么问题?
谢谢!
答案 0 :(得分:0)
阅读此Q and A。
另一种方法
$minsToRunFor = 10
$secondsToRunFor = $minsToRunFor * 60
foreach ($second in $secondsToRunFor){
$lastline = Get-Content -Path "C:\test.txt" | Select-Object -last 1
# added condition as per VonPryz's good point
# (otherwise will add lastline regardless of whether it's new or not)
if ($lastline -ne $oldlastline){
.\mosquitto_pub.exe -t "Events" -m "$lastline"
}
$oldlastline = $lastline
Start-Sleep 100
}