我想映射網路。如果映射失敗,我需要使用重試,并且最大重試 5 次。我已經嘗試過這種方式,但我不知道如何添加最大重試次數。
Do{
Try{
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("$Directory", "\\IP\$Folder", $False, "$Server\$SQL", "$pass")
$Message = "Mapping : " $Directory "Successful"
Write-Host $Message
}
Catch{
$Message= "Mapping : " $Directory " Fault" " $_"
Write-Host $Message
}
}While($? -ne $true)
任何人都可以幫助真正感激。謝謝
uj5u.com熱心網友回復:
有很多方法可以解決這個問題,這里是一種使用腳本塊的方法,請注意,此示例僅有效,因為您使用Write-Host的是哪個輸出轉到資訊流,并且除非重定向 ( 6>&1),否則不會捕獲它的輸出。
$action = {
Try
{
$net = New-Object -ComObject WScript.Network
$net.MapNetworkDrive(
"$Directory", "\\IP\$Folder", $False, "$Server\$SQL", "$pass"
)
$Message = "Mapping : " $Directory "Successful"
Write-Host $Message
$true # => if everything goes right $result = $true
}
Catch
{
$Message = "Mapping : " $Directory " Fault" " $_"
Write-Host $Message
$false # => if fails $result = $false
}
}
$maxRetries = 5
do { $result = & $action } # do this
until (-not --$maxRetries -or $result) # until $result is True OR
# $maxRetries reaches 0
老實說,一個更簡單的選擇:
$maxRetries = 5
1..$maxRetries | ForEach-Object {
if( & $action ) { break } # => if action = True stop the loop
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388237.html
