使用自定义消息在PowerShell中的循环内循环

时间:2014-09-18 08:47:41

标签: powershell

我正在创建一个简单的测试连接应用程序,其中正在ping一个IP列表。 结果的消息基于主机列表(compA,compB,compC等)。

目前,我有这个代码:



FOR %%i IN (
     192.168.200.1
     192.168.200.2
) DO (
     PowerShell -NoProfile -Command "If (Test-Connection %%i -Count 1 -Quiet) { Write-Host "%%i %%hostname - successfully pinged" -F Green } else { Write-Host "%%i %%hostname FAILED" -F Red}
)




我想创建另一个存储%% hostname变量的循环,并将显示在与其特定IP地址对应的消息中。

1 个答案:

答案 0 :(得分:1)

尝试此解决方案,全部在Powershell中:

$computers = @{"host1"="10.10.10.1";"host2"="10.10.10.200"}

foreach($computer in $computers.getEnumerator()){
    $ip = [string]$computer.Value
    $name = [string]$computer.Name
    If (Test-Connection $ip -Count 1 -Quiet){
        Write-Host ( $name + "- successfully pinged")-F Green 
    }
    else{
        Write-Host ($name + " FAILED") -F Red
    }
}