根据about_Parameters_Default_Values文档,
$PSDefaultParameterValues 首选项变量允许您为任何 cmdlet 或高级函数指定自定义默认值。
但是,实际上,这似乎不适用于脚本高级功能(请参阅下面脚本中的示例部分)。
使用Script和Local范围,核心 PowerShell Cmdlet(即Write-Host)的默认值工作正常,但脚本本身的任何参数都不会从 接收到$PSDefaultParameterValues,无论是否定义了默认值,或者是否有公共参数。
<#
.Synopsis
Test the handling of $PSDefaultParameterValues.
.Parameter UnspecifiedParam
A parameter with no default.
.Parameter DefaultParam
A parameter with a default.
.Example
Test-DefaultParam.ps1
Name Value
---- -----
InitialPSBoundParameters {}
InitialUnspecifiedParam
InitialDefaultParam DefinedDefaultValue
Script:PSDefaultParameterValues:Write-Host
WARNING: UnspecifiedParam default was not received
WARNING: DefaultParam default was not received
WARNING: Verbose default was not received
PSDefaultParameterValues {Test-DefaultParam:Verbose, Test-DefaultParam:DefaultParam, Test-DefaultParam:UnspecifiedParam}
PSDPVUnspecifiedParam Script:PSDefaultParameterValues:UnspecifiedParam
PSDPVDefaultParam Script:PSDefaultParameterValues:DefaultParam …Run Code Online (Sandbox Code Playgroud) powershell ×1