gpt4 book ai didi

powershell - 如何通过Powershell脚本从输出csv隐藏/删除标题

转载 作者:行者123 更新时间:2023-12-02 23:51:52 25 4
gpt4 key购买 nike

我正在使用Psping检查具有端口的IP的延迟,并导出结果CSV而不显示标题。

我试过-select skip 1似乎不起作用,但有错误。


function CheckLatency
{
param([string[]]$servers)
foreach ($server in $servers)
{
$times = [ordered]@{ Server = "$server";TimeStamp = (Get-Date -f "yyyy-MM-dd hh:mm:ss"); Minimum = 0; Maximum = 0; Average = 0; }
$results = & "c:\users\test\desktop\psping.exe" -n 1 $server 2>&1 | select-string "Minimum"
if ($results) {
$results = $results.tostring() -split ","
foreach ($result in $results)
{
$result = ($result -replace "ms","").trim()
$parsed = $result -split " "
switch ($parsed[0])
{
"Minimum" {$times.Minimum = $parsed[2]}
"Maximum" {$times.Maximum = $parsed[2]}
"Average" {$times.Average = $parsed[2]}
}
}
new-object -type PSObject -prop $times
}
}
}

$csvFile = "C:\users\test\desktop\check$(get-date -f yyyy-MM-dd-hhmmss).csv"
CheckLatency 8.8.8.8:443,8.8.8.8:80 | Export-CSV -LiteralPath $csvFile -NoTypeInformation

带标题输出

Please help remove the header

最佳答案

Export-Csv始终包含标题行(输出对象的属性名称列表)。

唯一的选择是在使用事实后使用纯文本处理删除该行:

$csvFile = "C:\users\test\desktop\check$(get-date -f yyyy-MM-dd-hhmmss).csv"

# ... your code that calls
# Export-CSV -LiteralPath $csvFile -NoTypeInformation

# Read the resulting file as an array of lines, skip the 1st line,
# and write the result back to the file.
(Get-Content -LiteralPath $csvFile) | Select-Object -Skip 1 | Set-Content -LiteralPath $csvFile

请注意 (...)调用周围的 Get-Content,这可确保在通过管道发送其行之前完整读取文件,从而允许在同一管道中重写输入文件。
请注意,如果写入过程中断,则文件损坏的可能性很小。

请注意,默认情况下,Windows PowerShell使用ANSI编码和 Set-Content,而 Export-Csv使用ASCII。根据需要使用 -Encoding
幸运的是,PowerShell Core始终默认使用无BOM的UTF-8。

关于powershell - 如何通过Powershell脚本从输出csv隐藏/删除标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com