about_CommonParameters
適用於: Windows PowerShell 2.0, Windows PowerShell 3.0
在此插入簡介。
主題
about_CommonParameters
簡短描述
描述可以與任何 Cmdlet 搭配使用的參數。
詳細描述
常見的參數是一組您可用來與任何 Cmdlet 搭配使用的 Cmdlet 參數。其由 Windows PowerShell® 實作,而非 Cmdlet 開發人員,而且會自動提供給任何 Cmdlet。
您可以將一般參數與任何 Cmdlet 搭配使用,但是參數可能無法在所有 Cmdlet 上皆產生作用。例如,如果 Cmdlet 未輸出任何詳細資訊,則使用 Verbose 通用參數並不會有任何作用。
一般參數在使用 CmdletBinding 屬性或 Parameter 屬性的進階功能上,以及在所有工作流程上都可以使用。
數個常見的參數會覆寫系統預設值或您使用 Windows PowerShell 喜好設定變數來設定的喜好設定。與喜好設定變數不同,一般參數只會對使用它們的命令造成影響。
除了一般參數之外,許多 Cmdlet 還會提供 WhatIf 和 Confirm 風險降低參數。會牽涉到系統或使用者資料之風險的 Cmdlet 通常會提供這些參數。
下列清單顯示常見的參數。其別名列在括號中。
-Debug (db)
-ErrorAction (ea)
-ErrorVariable (ev)
-OutVariable (ov)
-OutBuffer (ob)
-PipelineVariable (pv)
-Verbose (vb)
-WarningAction (wa)
-WarningVariable (wv
風險降低參數如下:
-WhatIf (wi)
-Confirm (cf)
如需有關喜好設定變數的詳細資訊,請輸入:
help about_Preference_Variables
一般參數說明
-DEBUG[:{$TRUE | $FALSE}]
Alias:db
顯示與命令執行之作業有關的程式設計師層級詳細資料。此參數只有在命令產生偵錯訊息時才適用。例如,此參數在命令包含 Write-Debug Cmdlet 時適用。
Debug 參數會覆寫目前命令的 $DebugPreference 變數值,而將 $DebugPreference 的值設為 Inquire。由於 $DebugPreference 變數的預設值是 SilentlyContinue,因此預設不會顯示偵錯訊息。
有效值:
$true (-Debug:$true). Has the same effect as -Debug.
$false (-Debug:$false). Suppresses the display of debugging
messages when the value of the $DebugPreference is not
SilentlyContinue (the default).
-ERRORACTION[:{CONTINUE | IGNORE | INQUIRE | SILENTLYCONTINUE | STOP |SUSPEND }]
Alias:ea
判斷 Cmdlet 如何回應命令的非終止錯誤。此參數只有在命令產生非終止錯誤 (例如來自 Write-Error Cmdlet 的錯誤) 時才適用。
ErrorAction 參數會覆寫目前命令的 $ErrorActionPreference 變數值。由於 $ErrorActionPreference 變數的預設值為 Continue,因此除非您使用 ErrorAction 參數,否則便會顯示錯誤訊息並繼續執行。
ErrorAction 參數對於會防止命令順利完成的終止錯誤 (例如遺失資料、無效的參數或沒有足夠的權限) 沒有任何影響。
有效值:
Continue。顯示錯誤訊息,並繼續執行命令。"Continue" 是預設值。
Ignore。隱藏錯誤訊息,並繼續執行命令。不同於 SilentlyContinue,Ignore 不會將錯誤訊息加入 $Error 自動變數中。Windows PowerShell 3.0 中引入 Ignore 值。
Inquire。顯示錯誤訊息,並提示您確認之後再繼續執行。此值很少使用。
SilentlyContinue。隱藏錯誤訊息,並繼續執行命令。
Stop。顯示錯誤訊息,並停止執行命令。
Suspend。這個值只在 Windows PowerShell 工作流程中提供。當工作流程遭遇終止錯誤時,這個動作優先會自動暫停工作以便進一步調查。經過調查之後,就可以繼續工作流程。
-ERRORVARIABLE [+]<VARIABLE-NAME>
Alias:ev
在指定的變數和 $Error 自動變數中儲存命令的錯誤訊息。如需詳細資訊,請輸入下列命令:
get-help about_Automatic_Variables
根據預設,新的錯誤訊息會覆寫已儲存在變數中的錯誤訊息。若要將錯誤訊息附加至變數內容,請在變數名稱之前輸入加號 (+)。
例如,下列命令會建立 $a 變數,然後將任何錯誤儲存於其中:
Get-Process -Id 6 -ErrorVariable a
下列命令會將任何錯誤訊息加入 $a 變數中:
Get-Process -Id 2 -ErrorVariable +a
下列命令會顯示 $a 的內容:
$a
您可以使用此參數來建立只包含來自特定命令之錯誤訊息的變數。$Error 自動變數包含來自工作階段中所有命令的錯誤訊息。您可以使用陣列標記法 (例如 $a[0] 或 $error[1,2]) 來指稱儲存在變數中的特定錯誤。
-OUTBUFFER <INT32>
Alias:ob
決定在任何物件透過管線傳送之前,要在緩衝區中累計的物件數目。如果您省略這個參數,物件便會以產生出來的狀態傳送。
此資源管理參數專為進階使用者設計。當您使用這個參數時,Windows PowerShell 會等到產生的物件數目等於 OutBuffer + 1 時,才會呼叫管線中的下一個 Cmdlet。此後,其會將所有物件以產生出來的狀態傳送。
-OUTVARIABLE [+]<VARIABLE-NAME>
Alias:ov
將來自命令的輸出物件儲存在指定的變數中,並將其顯示在命令列。
若要將輸出加入到變數中,而非取代任何可能已儲存在該處的輸出,請在變數名稱之前輸入加號 (+)。
比方說,下列命令會建立 $out 變數並將程序物件儲存於其中:
Get-Process PowerShell -OutVariable out
下列命令會將程序物件加入 $out 變數中:
Get-Process iexplore -OutVariable +out
下列命令會顯示 $out 變數的內容:
$out
-PIPELINEVARIABLE <STRING>
Alias:pv
PipelineVariable 會將目前的管線元素值儲存為變數,在其流經管線時供任何具名命令使用。
有效值為字串,與任何的變數名稱相同。
以下是 PipelineVariable 運作方式的範例。在此範例中,PipelineVariable 參數會加入 Foreach-Object 命令中,以將命令的結果儲存在變數中。範圍為 1 到 10 的數字會透過管線傳遞給第一個 Foreach-Object 指令,而其結果會儲存在名為 Left 的變數中。
第一個 Foreach-Object 命令的結果會透過管線傳遞給第二個 Foreach-Object 命令,而後者會篩選第一個 Foreach-Object 命令所傳回的物件。第二個命令的結果會儲存在名為 Right 的變數中。
在第三個 Foreach-Object 命令中,以變數 Left 和 Right 呈現之頭兩個 Foreach-Object 管線命令的結果會使用乘法運算子來處理。這個命令會指示儲存在 Left 和 Right 變數中的物件要相乘,並指定其結果顯示為「Left 範圍成員 * Right 範圍成員 = 乘積」。
1..10 | Foreach-Object -PipelineVariable Left -Process { $_ } |
>> Foreach-Object -PV Right -Process { 1..10 } |
>> Foreach-Object -Process { "$Left * $Right = " + ($Left * $Right) }
>>
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
-VERBOSE[:{$TRUE | $FALSE}]
Alias:vb
顯示命令所執行之作業的相關詳細資訊。此資訊類似追蹤或交易記錄檔中的資訊。此參數只有在命令產生詳細訊息時才適用。例如,此參數在命令包含 Write-Verbose Cmdlet 的情況下適用。
Verbose 參數會覆寫目前命令的 $VerbosePreference 變數值。由於 $VerbosePreference 變數的預設值是 SilentlyContinue,因此依預設不會顯示詳細訊息。
有效值:
$true (-Verbose:$true) has the same effect as -Verbose.
$false (-Verbose:$false) suppresses the display of verbose
messages. Use this parameter when the value of $VerbosePreference
is not SilentlyContinue (the default).
-WARNINGACTION[:{CONTINUE | INQUIRE | SILENTLYCONTINUE | STOP}]
Alias:wa
決定 Cmdlet 應如何回應來自命令的警告。"Continue" 是預設值。此參數只有在命令產生警告訊息時才適用。例如,此參數在命令包含 Write-Warning Cmdlet 的情況下適用。
WarningAction 參數會覆寫目前命令的 $WarningPreference 變數值。由於 $WarningPreference 變數的預設值為 Continue,因此除非您使用 WarningAction 參數,否則會顯示警告並繼續執行。
有效值:
Continue。顯示警告訊息,並繼續執行命令。"Continue" 是預設值。
Inquire。顯示警告訊息,並提示您確認之後再繼續執行。此值很少使用。
SilentlyContinue。隱藏警告訊息,並繼續執行命令。
Stop。顯示警告訊息,並停止執行命令。
注意:在命令中使用 WarningAction 參數來執行指令碼或函式時,此參數不會覆寫 $WarningAction 喜好設定變數的值。
-WARNINGVARIABLE [+]<VARIABLE-NAME>
Alias:wv
將關於命令的警告儲存在指定的變數中。
即使警告沒有顯示給使用者看到,所有產生的警告依然會儲存在變數中。
若要將警告附加至變數內容,而非取代任何可能已經儲存在該處的警告,請在變數名稱之前輸入加號 (+)。
例如,下列命令會建立 $a 變數,然後將任何警告儲存於其中:
Get-Process -Id 6 -WarningVariable a
下列命令會將任何警告加入 $a 變數中:
Get-Process -Id 2 -WarningVariable +a
下列命令會顯示 $a 的內容:
$a
您可以使用此參數來建立只包含來自特定命令之警告的變數。您可以使用陣列標記法 (例如 $[0] 或 $warning[1,2]) 來參考儲存在變數中的特定警告。
注意:WarningVariable 參數不會擷取來自函式或指令碼中巢狀呼叫的警告。
風險管理參數的說明
-WHATIF[:{$TRUE | $FALSE}]
Alias:wi
顯示描述命令效果而非執行命令的訊息。
WhatIf 參數會覆寫目前命令的 $WhatIfPreference 變數值。由於 $WhatIfPreference 變數的預設值為 0 (停用),因此需要有 WhatIf 參數才會執行 WhatIf 行為。如需詳細資訊,請輸入下列命令:
Get-Help about_Preference_Variables
有效值:
$true (-WhatIf:$true). Has the same effect as -WhatIf.
$false (-WhatIf:$false). Suppresses the automatic WhatIf behavior
that results when the value of the $WhatIfPreference variable
is 1.
例如,下列命令會在 Remove-Item 命令中使用 WhatIf 參數:
PS> Remove-Item Date.csv -WhatIf
Windows PowerShell 不會移除項目,而且還會列出要執行的作業以及會受到影響的項目。此命令會產生下列輸出:
What if: Performing operation "Remove File" on
Target "C:\ps-test\date.csv".
-CONFIRM[:{$TRUE | $FALSE}]
Alias:cf
執行命令之前先提示您確認。
Confirm 參數會覆寫目前命令的 $ConfirmPreference 變數值。預設值為 High。如需詳細資訊,請輸入下列命令:
Get-Help about_Preference_Variables
有效值:
$true (-Confirm:$true). Has the same effect as -Confirm.
$false(-Confirm:$false). Suppresses automatic confirmation,
which occurs when the value of $ConfirmPreference is less than
or equal to the estimated risk of the cmdlet.
例如,下列命令會將 Remove-Item 命令與 Confirm 參數搭配使用。在移除項目之前,Windows PowerShell 會列出要執行的作業以及會受到影響的項目,並要求核准。
PS C:\ps-test> Remove-Item tmp*.txt -Confirm
此命令會產生下列輸出:
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target " C:\ps-test\tmp1.txt
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend
[?] Help (default is "Y"):
Confirm 回應選項如下所示:
Yes (Y) Perform the action.
Yes to All (A) Perform all actions and suppress subsequent
Confirm queries for this command.
No (N): Do not perform the action.
No to All (L): Do not perform any actions and suppress subsequent
Confirm queries for this command.
Suspend (S): Pause the command and create a temporary session.
Help (?) Display help for these options.
Suspend 選項會保留命令並建立暫存巢狀工作階段,而在該處您可以一直進行處理,直到您準備好選擇 Confirm 選項為止。巢狀工作階段的命令提示字元具有兩個額外的插入點 (>>) ,可顯示其為原始父命令的子作業。您可以在巢狀工作階段中執行命令和指令碼。若要結束巢狀工作階段並回到原始命令的 Confirm 選項,請輸入 "exit"。
在下列範例中,Suspend 選項 (S) 在使用者查看命令參數的說明時,會用來暫時停止命令。在取得所需的資訊之後,使用者會輸入 "exit" 來結束巢狀提示,然後選擇 [是] (y) 來回應 Confirm 查詢。
PS C:\ps-test> New-Item -ItemType File -Name Test.txt -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Create File" on Target "Destination: C:\ps-test\test.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): s
PS C:\ps-test>>> Get-Help New-Item -Parameter ItemType
-ItemType <string>
Specifies the provider-specified type of the new item.
Required? false
Position? named
Default value
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? false
PS C:\ps-test>>> exit
Confirm
Are you sure you want to perform this action?
Performing operation "Create File" on Target "Destination: C:\ps-test\test.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Directory: C:\ps-test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/27/2010 2:41 PM 0 test.txt
關鍵字
about_Common_Parameters
另請參閱
about_Preference_Variables
Write-Debug
Write-Warning
Write-Error
Write-Verbose