首页 > 解决方案 > 使用 PowerShell Ping 服务器

问题描述

我想 ping 我们的一台服务器并继续旋转文件。为此,我创建了以下脚本

function main()
{
    ping 192.168.1.1 > E:\Ping\TestCon.txt
    RotateLog
}

function RotateLog {
$log = "E:\Ping\*.log_old"
$target = Get-ChildItem $log -Filter "*.log_old" | sort LastWriteTime | select -last 1
# $threshold = 3000
$datetime = Get-Date -uformat "%Y-%m-%d"
$filename = "$("TestCon")_${datetime}.log_old"
if ( $filename -eq $targeta.name )
    {
        main
    }
else
    {
        $newname = "$("TestCon")_${datetime}.log_old"
        Rename-Item -Path "E:\Ping\TestCon.txt" $newname
        main
    }

}

main

问题是当它返回到 main 时,它会创建新文件,但我想附加它,只要它具有相同的日期。请建议

标签: powershellping

解决方案


要么按照 Mathias R. Jessen 在评论中的建议进行操作,然后直接写入文件。

$datetime = Get-Date -uformat "%Y-%m-%d"
Test-NetConnection -ComputerName 192.168.1.1 | Out-File -Path "TestCon_${datetime}.log_old"

或者您可以测试文件是否存在并附加内容。

if ([bool](Test-Path -Path "TestCon_${datetime}.log_old"))
{
  Test-NetConnection -ComputerName 192.168.1.1 | Out-File -Path "TestCon_${datetime}.log_old" -Append
}

推荐阅读