简短说明
介绍可与任何 cmdlet 一起使用的参数。
详细说明
通用参数是可与任何 cmdlet 结合使用的一组 cmdlet 参数。 它们由 PowerShell 实现,而不是由 cmdlet 开发人员实现,并且它们自动可用于任何 cmdlet。
可以将通用参数与任何 cmdlet 结合使用,但它们可能不会对所有 cmdlet 都产生效果。 例如,如果 cmdlet 未生成任何详细输出,则使用 Verbose common 参数不会产生任何影响。
通用参数也可用于使用 CmdletBinding 属性或 Parameter 属性的高级函数以及所有工作流。
几个常用参数会覆盖您使用 PowerShell 首选项变量设置的系统默认值或首选项。 与首选项变量不同,通用参数仅影响使用它们的命令。
除了通用参数之外,许多 cmdlet 还提供 WhatIf 和 Confirm 风险缓解参数。 涉及系统风险或用户数据的 cmdlet 通常提供这些参数。
以下列表显示通用参数。 它们的别名列在括号中。
- 调试 (db)
- ErrorAction (ea)
- ErrorVariable (ev)
- InformationAction (infa)
- InformationVariable (iv)
- OutVariable (ov)
- OutBuffer (ob)
- PipelineVariable (pv)
- 详细 (vb)
- WarningAction (wa)
- WarningVariable (wv)
风险缓解参数包括:
- WhatIf (wi)
- 确认 (cf)
有关详细信息,请参阅 about_Preference_Variables。
常用参数说明
调试
Debug 的别名是 db。
显示有关命令完成的操作的程序员级详细信息。 此参数仅在命令生成调试消息时有效。 例如,当命令包含 Write-Debug
cmdlet 时,此参数有效。
Debug 参数覆盖当前命令的变量值$DebugPreference
,将 的值$DebugPreference
设置为 Continue。 由于变量的 $DebugPreference
默认值为 SilentlyContinue,因此默认情况下不会显示调试消息。
-Debug:$true
的效果与 -Debug
相同。 当 -Debug:$false
不是 $DebugPreference
(默认值)时使用 禁止显示调试消息。
错误作
ErrorAction 的别名是 ea。
确定 cmdlet 如何从命令响应非终止错误。
仅当命令生成非终止错误(例如来自 Write-Error
cmdlet 的错误)时,此参数才有效。
ErrorAction 参数替代当前命令的$ErrorActionPreference
变量值。 由于变量的 $ErrorActionPreference
默认值为 Continue,因此将显示错误消息并继续执行,除非使用 ErrorAction 参数。
ErrorAction 参数对终止错误(例如缺少数据、无效的参数或权限不足)没有影响,这些错误阻止命令成功完成。
-ErrorAction:Continue
显示错误消息并继续执行命令。
Continue
是默认值。
-ErrorAction:Ignore
禁止显示错误消息并继续执行命令。 与 SilentlyContinue 不同, Ignore 不会将错误消息添加到 $Error
自动变量。 PowerShell 3.0 中引入了 Ignore 值。
-ErrorAction:Inquire
显示错误消息,并在继续执行之前提示你确认。 此值很少使用。
-ErrorAction:SilentlyContinue
禁止显示错误消息并继续执行命令。
-ErrorAction:Stop
显示错误消息并停止执行命令。
-ErrorAction:Suspend
在 PowerShell Core 上不受支持,因为它仅适用于工作流。
注释
当 ErrorAction 参数在命令中用于运行脚本或函数时,该参数会覆盖 preference 变量的值,但不会替换$ErrorAction
该参数的值。
ErrorVariable 错误变量
ErrorVariable 的别名为 ev。
ErrorVariable 将有关命令的错误消息存储在指定变量和 automatic 变量中 $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]
)来引用变量中存储的特定错误。
信息作
InformationAction 的别名是 ia。
在 PowerShell 5.0 中引入。 在使用它的命令或脚本中, InformationAction 公共参数将替代首选项变量的值 $InformationPreference
,该变量默认设置为 SilentlyContinue。 在包含 Write-Information
的脚本中使用 时,将根据 Write-Information
参数的值显示 值。 有关 $InformationPreference
的详细信息,请参阅 about_Preference_Variables。
-InformationAction:Stop
在遇到 Write-Information
命令时停止命令或脚本。
-InformationAction:Ignore
禁止显示信息性消息并继续运行命令。 与 SilentlyContinue 不同, 忽略 完全忘记信息性消息;它不会将信息性消息添加到信息流。
-InformationAction:Inquire
显示你在 Write-Information
命令中指定的信息性消息,然后询问是否要继续。
-InformationAction:Continue
显示信息性消息并继续运行。
-InformationAction:Suspend
在 PowerShell Core 上不受支持,因为它仅适用于工作流。
-InformationAction:SilentlyContinue
不起作用,因为(默认)不会显示信息性消息,并且脚本将继续执行而不会中断。
注释
当 InformationAction 参数在命令中用于运行脚本或函数时,该参数会覆盖 preference 变量的值,但不会替换$InformationAction
该变量的值。
信息变量
InformationVariable 的别名为 iv。
在 PowerShell 5.0 中引入。 在使用它的命令或脚本中, InformationVariable 通用参数将您通过添加 Write-Information
命令指定的字符串存储在变量中。
Write-Information
根据 InformationAction 通用参数的值显示值;如果不添加 InformationAction 通用参数, Write-Information
则根据 preference 变量的值 $InformationPreference
显示字符串。 有关 $InformationPreference
的详细信息,请参阅 about_Preference_Variables。
OutBuffer 缓冲区
OutBuffer 的别名是 ob 并采用 System.Int32 值。
确定在通过管道发送任何对象之前,在缓冲区中累积的对象数。 如果省略此参数,则会在生成对象时发送对象。
此资源管理参数专为高级用户设计。 使用此参数时,PowerShell 会将数据以 OutBuffer + 1
个为一批发送到下一个 cmdlet。
以下示例交替显示使用 ForEach-Object
cmdlet 的 Write-Host
进程块。 以 2 个或 OutBuffer + 1
个为一批交换显示。
1..4 | ForEach-Object {
Write-Host "$($_): First"; $_
} -OutBuffer 1 | ForEach-Object {
Write-Host "$($_): Second" }
1: First
2: First
1: Second
2: Second
3: First
4: First
3: Second
4: Second
OutVariable (输出变量)
OutVariable 的别名是 ov。
除了通过管道发送输出外,还会在指定变量中存储命令的输出对象。
若要将输出添加到变量,而不是替换可能已存储到该变量的任何输出,请在变量名称之前键入加号 (+
)。
例如,以下命令创建 $out
变量,并将进程对象存储在其中:
Get-Process PowerShell -OutVariable out
以下命令将进程对象添加到 $out
变量:
Get-Process iexplore -OutVariable +out
以下命令显示 $out
变量的内容:
$out
注释
OutVariable 参数创建的变量是一个 [System.Collections.ArrayList]
。
PipelineVariable (管道变量)
PipelineVariable 的别名是 pv 并采用字符串值。
PipelineVariable 将当前管道元素的值存储为变量,用于流经管道的任何命名命令。
有效值为字符串,对于任何变量名称也是如此。
下面是 PipelineVariable 的工作原理示例。 在此示例中, PipelineVariable 参数将添加到命令 Foreach-Object
中,以将命令的结果存储在变量中。 1 到 10 的数字范围通过管道传递到第一个 Foreach-Object
命令中,其结果存储在名为 Left 的变量中。
第一个 Foreach-Object
命令的结果通过管道传输到第二个 Foreach-Object
命令中,该命令筛选第一个 Foreach-Object
命令返回的对象。 第二个命令的结果存储在名为 Right 的变量中。
在第三个 Foreach-Object
命令中,前两个 Foreach-Object
管道命令的结果(由变量 Left 和 Right 表示)使用乘法运算符进行处理。 该命令指示对存储在 Left 和 Right 变量中的对象进行乘法,并指定结果应显示为 “Left range member * Right range member = product”。
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 的别名是 vb。
显示有关命令完成的操作的详细信息。 此信息类似于跟踪或事务日志中的信息。 仅当命令生成详细消息时,此参数才有效。 例如,当命令包含 Write-Verbose
cmdlet 时,此参数有效。
Verbose 参数重写当前命令的 $VerbosePreference
变量值。 由于 $VerbosePreference
变量的默认值为 SilentlyContinue,因此默认情况下不显示详细消息。
-Verbose:$true
的效果与 -Verbose
相同
-Verbose:$false
禁止显示详细消息。 当值 $VerbosePreference
不是 SilentlyContinue (默认值)时,请使用此参数。
WarningAction作
WarningAction 的别名是 wa。
确定 cmdlet 如何响应命令中的警告。
Continue 是默认值。 仅当命令生成警告消息时,此参数才有效。 例如,当命令包含 Write-Warning
cmdlet 时,此参数有效。
WarningAction 参数替代当前命令的$WarningPreference
变量值。 由于变量的 $WarningPreference
默认值为 Continue,因此除非使用 WarningAction 参数,否则将显示警告并继续执行。
-WarningAction:Continue
显示警告消息并继续执行命令。
Continue
是默认值。
-WarningAction:Inquire
显示警告消息,并在继续执行之前提示确认。 此值很少使用。
-WarningAction:SilentlyContinue
禁止显示警告消息并继续执行命令。
-WarningAction:Stop
显示警告消息并停止执行命令。
注释
当 WarningAction 参数在命令中用于运行脚本或函数时,该参数会覆盖 preference 变量的值,但不会替换 $WarningAction
该变量的值。
WarningVariable (警告变量)
WarningVariable 的别名是 wv。
将有关命令的警告存储在指定的变量中。
即使不会向用户显示警告,所有生成的警告也会保存在变量中。
若要将警告追加到变量内容,而不是替换可能已存储在那里的任何警告,请在变量名称之前键入加号 (+
)。
例如,以下命令创建 $a
变量,然后将警告存储在其中:
Get-Process -Id 6 -WarningVariable a
以下命令将警告添加到 $a
变量:
Get-Process -Id 2 -WarningVariable +a
以下命令显示 $a
的内容:
$a
可以使用此参数创建仅包含来自特定命令的警告的变量。 可以使用数组表示法(如 $a[0]
或 $warning[1,2]
)来引用变量中存储的特定警告。
注释
WarningVariable 参数不会从函数或脚本中的嵌套调用中捕获警告。
风险管理参数说明
WhatIf
WhatIf 的别名是 wi。
显示描述命令效果的消息,而不是执行命令。
WhatIf 参数替代当前命令的$WhatIfPreference
变量值。 由于变量的$WhatIfPreference
默认值为 0(已禁用),因此没有 WhatIf 参数,WhatIf 行为不会完成。 有关更多信息,请键入以下命令:
Get-Help about_Preference_Variables
-WhatIf:$true
的效果与 -WhatIf
相同。
-WhatIf:$false
禁止 $WhatIfPreference
变量值为 1 时产生的自动 WhatIf 行为。
例如,以下命令在 -WhatIf
命令中使用 Remove-Item
参数:
Remove-Item Date.csv -WhatIf
PowerShell 不会删除该项,而是列出它将执行的操作以及受影响的项。 该命令生成以下输出:
What if: Performing operation "Remove File" on
Target "C:\ps-test\date.csv".
确认
Confirm 的别名是 cf。
在执行命令前提示您进行确认。
Confirm 参数将覆盖当前命令的变量值$ConfirmPreference
。 默认值为真。 有关更多信息,请键入以下命令:
Get-Help about_Preference_Variables
-Confirm:$true
的效果与 -Confirm
相同。
-Confirm:$false
禁止自动确认,当 $ConfirmPreference
的值小于或等于 cmdlet 的估计风险时,将发生此行为。
例如,以下命令将 Confirm 参数与 Remove-Item
命令一起使用。 在删除该项之前,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 response 选项如下:
响应 | 结果 |
---|---|
是 (Y) | 执行该操作。 |
全部是 (A) | 执行所有作并禁止后续 Confirm 查询 |
对于此命令。 | |
否 (N): | 请勿执行该作。 |
否 (L): | 不执行任何作并禁止后续 Confirm |
查询此命令。 | |
暂停 (S): | 暂停命令并创建临时会话。 |
帮助 (?) | 显示这些选项的帮助。 |
Suspend (暂停) 选项将命令置于暂停状态,并创建一个临时嵌套会话,您可以在该会话中工作,直到准备好选择 Confirm (确认) 选项为止。 嵌套会话的命令提示符有两个额外的插入点 (>>),指示它是原始父命令的子操作。 可以在嵌套会话中运行命令和脚本。 要结束嵌套会话并返回到原始命令的 Confirm 选项,请键入 “exit”。
在以下示例中, “挂起 ”选项(S)用于在用户检查命令参数的帮助时暂时停止命令。 获取所需信息后,用户键入 “exit” 以结束嵌套提示,然后选择对 Confirm 查询的 Yes (y) 响应。
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 (defau
lt is "Y"): y
Directory: C:\ps-test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/27/2010 2:41 PM 0 test.txt
关键字
about_Common_Parameters