我似乎無法理解如何繼續另一個 IF 陳述句。我想做的是:
- 如果操作 1 成功則執行 X 并轉到操作 2,否則記錄它并回傳到下一個回圈
- 如果操作 2 成功則執行 X 并轉到操作 3,否則記錄它并回傳到下一個回圈
我在操作 1 后遇到“并轉到操作 2”的問題。我嘗試了各種方法,但顯然下面的腳本不起作用。它可以執行 Action 1 測驗連接,如果成功將匯出日志,否則將記錄失敗并回傳到下一個回圈。但是,如果成功,我無法讓它執行下一步操作。
$hostname = Import-Csv C:\Users\jackie.cheng\Desktop\TestComputers.csv
$hostname | % {
if (Test-Connection $_.hostname -count 1)
{Write-Host "$($_.hostname) Test-Connection Succeeded"
$array = [pscustomobject]@{
Name = $currentobject.hostname
Status = "Test-Connection Success"}
}
else {Write-Host "$($_.hostname) Test-Connection Failed"
$array2 = [pscustomobject]@{
Name = $currentobject.hostname
Status = "Failed Test-Connection"}
} return
if (Test-Connection $_.hostname -count 1)
{Write-Host "Second action ran"}
else {Write-Host "Second action failed"} return
}
uj5u.com熱心網友回復:
在 a 的腳本塊中Foreach-Object,這是帶有別名的命令的全名,%實際上您可以使用 return 跳過 return 之后的任何陳述句,并繼續下一個回圈。
在你的情況下,你只需要像這樣將你的移動return到你的else塊中:
If (Success Condition){
Actions to do on success
}
else{
Actions to do on fail
return
}
If (Success Condition 2){
...
}
else{
...
return
}
正如在對您的問題的評論中提到的,請務必閱讀returnPowerShell 中的作業原理,因為它有些不尋常并且在不同的背景關系中表現不同。
uj5u.com熱心網友回復:
我會這樣做,只是輸出兩種情況下的物件。注意縮進有助于查看代碼的結構。通常不需要退貨。-ea 0 表示“-erroraction 靜靜地繼續”。
Import-Csv TestComputers.csv |
% {
if (Test-Connection $_.hostname -count 1 -ea 0) {
[pscustomobject]@{
Name = $_.hostname
Status = $true}
}
else {
[pscustomobject]@{
Name = $_.hostname
Status = $false}
}
}
Name Status
---- ------
yahoo.com True
microsoft.com False
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/537934.html
標籤:电源外壳if语句
