gpt4 book ai didi

powershell - 需要帮助编写 ping 结果以分隔启动和关闭机器的文件

转载 作者:行者123 更新时间:2023-12-04 07:30:58 25 4
gpt4 key购买 nike

我需要 ping 一个机器列表,并将结果分为上下两个不同的 .txt 文件。

$PingPCs = Get-Content "C:\Temp\Cache Cleanup Project\Computerlist.txt
foreach ($PC in $PingPCs) {
$up = Test-Connection $PC -Count 1 -Quiet
if($up) {
$Response = Test-Connection $PC -Count 1 | Select-Object Name
$Response ## Need help figuring out the outfile process to write to .txt ##
}
else {
$Failed = "$PC is not reachable"
$Failed ### Need help figuring out the outfile process to write to .txt ###
}
}
我需要帮助的两个地方只是将结果写入单独的文本文件。一个名为 Online.txt 的文件和另一个 Offline.txt。

最佳答案

您可以这样做,而不是在每次迭代时导出结果并附加到文件中,最好先执行测试并将结果保存在内存中。全部完成后,导出结果:

$PingPCs = Get-Content "C:\Temp\Cache Cleanup Project\Computerlist.txt"

$result = foreach ($PC in $PingPCs)
{
$testConnection = Test-Connection $PC -Count 1 -Quiet

[pscustomobject]@{
ComputerName = $PC
TestConnection = $testConnection
}
}

$result.where({$_.TestConnection}) | Out-File "x:\path\to\online.txt"
$result.where({-not $_.TestConnection}) | Out-File "x:\path\to\offline.txt"
编辑
添加不错的优化以导出结果。感谢 @mklement0
$online, $offline = $result.where({$_.TestConnection},'Split')
$online | Out-File "x:\path\to\online.txt"
$offline | Out-File "x:\path\to\offline.txt"

关于powershell - 需要帮助编写 ping 结果以分隔启动和关闭机器的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67928584/

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