我正在尝试使用[System.Net.DNS]从一个很好的IP列表中运行IP检查... 这很好用,但我想在其上放一个简单的进度条。无论是秒还是百分比...都不在乎。我只想要一个很好的进度条出现并告诉我需要等多久。
$colComputers = get-content $File
foreach ($strComputer in $colComputers)
{
$IP = try {$dnsresult = [System.Net.DNS]::GetHostEntry($strComputer)} `
catch {$dnsresult = "Fail"}
$IP
for ($IP=100; $IP -gt 1; $IP--) {
Write-Progress -Activity "Working..." `
-SecondsRemaining $IP `
-Status "Please wait."
}
脚本运行得很好,只是卡在这个进度条上。 我认为如果能够确定列表包含多少IP并让它从倒数第一个倒数就会很好。
答案 0 :(得分:2)
我无法理解您的剧本。
$IP = try { }
?$IP
(我虽然总是为空),为什么?。$dnsresult
.. 这是你想要做的吗?
$colComputers = @(get-content $File)
$count = $colComputers.Count
$i = 1
foreach ($strComputer in $colComputers)
{
#Write-Progress needs -percentagecomplete to make the progressbar move
Write-Progress -Activity "Working... ($i/$count)" -PercentComplete ($i/$colComputers.Count*100) -Status "Please wait."
#What is IP = try { } :S
try {
$dnsresult = [System.Net.DNS]::GetHostEntry($strComputer)
}
catch {
$dnsresult = "Fail"
}
#Do something with $dnsresults...
#Increase counter i
$i++
}