如何使用PowerShell函数导出与控制台一致的带宽利用率日志?
解决PowerShell Net-utilization函数日志导出不全的问题
问题根源:你的函数里应该用了
Write-Host输出实时带宽数据,Write-Host的内容直接发送到控制台,不会进入PowerShell的输出管道,所以Out-File只能捕获到最后进入管道的统计结果(也就是那行Measurements内容)。修复方案:把函数中输出实时数据的
Write-Host替换成Write-Output(或者直接输出变量,PowerShell默认会把未捕获的对象发送到输出管道),这样所有实时数据和最终结果都会进入管道,Out-File就能完整捕获。举个代码调整的例子:
原代码片段:Write-Host "当前带宽利用率: $utilization%"修改后:
Write-Output "当前带宽利用率: $utilization%" # 或者更简洁的写法: "当前带宽利用率: $utilization%"导出命令调整:修改函数后,直接用管道导出即可:
Net-utilization | Out-File -Path "带宽日志.txt" -Encoding UTF8如果要同时在控制台显示并导出,用
Tee-Object可以实现双向输出:Net-utilization | Tee-Object -FilePath "带宽日志.txt" -Encoding UTF8额外提示:如果函数里有仅需在控制台显示的提示类信息(非统计数据),可以保留
Write-Host,这类信息不会被导出,符合正常需求。
内容的提问来源于stack exchange,提问作者Spertrun
相关产品推荐
相关产品推荐

