我正在创建一个简单的测试连接应用程序,其中正在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地址对应的消息中。
答案 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
}
}