例如我们为一个Ping功能Function设定了两个参数,一个叫ComputerName,一个叫IPAddress.如果你不使用参数互斥,那么使用的时候有可能会出现又指定ComputerName又指定IPAddress的情况.那到底是Ping计算机名还是IP地址呢?正确使用了参数互斥:ParameterSetName就可以很好的解决问题. 目标 输入姓名和年龄后,直接在显示 某某 今年 ...
自定义PowerShell函数,在设置参数的时候中,可以将参数设置为某些情况下可选,某些条件下又设置为必选。 示例代码从网站复制的。 1functionConnect-Somewhere2{3[CmdletBinding(DefaultParameterSetName='A')]4param5(6[Parameter(ParameterSetName='A',Mandatory=$false)]7[Parameter(ParameterSetName='B',Mandatory=$...
FunctionTest-ScriptCmdlet{ [CmdletBinding(SupportsShouldProcess=$True)]Param($Parameter1)begin{}process{}end{} } 备注 这些块适用于所有函数,而不仅仅是使用CmdletBinding属性的函数。 begin 此块用于为函数提供可选的一次性预处理。 PowerShell 运行时会为管道中函数的每个实例使用此块中的代码一次。
function Get-Sample { [CmdletBinding()] param([string]$Name, [string]$Path) dynamicparam { if ($Path.StartsWith("HKLM:")) { $parameterAttribute = [System.Management.Automation.ParameterAttribute]@{ ParameterSetName = "ByRegistryPath" Mandatory = $false } $attributeCollection = ...
Wouldn’t it be great if the PowerShell team thought about such a circumstance and give you a mechanism to specify which parameterset to pick if things were ambiguous? OH WAIT – they did! function test-param { [CmdletBinding(DefaultParametersetName=”p2″)] ...
自动变量$PSCmdlet提供ParameterSetName属性。 此属性包含正在使用的参数集的名称。 可以在函数中使用此属性来确定哪个参数集用于选择特定于参数集的行为。 PowerShell functionGet-ParameterSetName{ [CmdletBinding(DefaultParameterSetName ='Set1')]param( [Parameter(ParameterSetName ='Set1', Position =0)]$Var1...
functionTest-MrParameter{param($ComputerName)Write-Output$ComputerName} 以下函数可查询系统中的所有命令,并返回带有特定参数名称的命令编号。 PowerShell functionGet-MrParameterCount{param( [string[]]$ParameterName)foreach($Parameterin$ParameterName) {$Results=Get-Command-ParameterName$Parameter-ErrorActionSil...
function inc ([parameter(ValueFromPipeline)]$x) {return $x + 1} Write-Host (3 | inc) #输出为:4 五、使用引用 函数参数可使用引用类型,使用引用类型之后便可以在函数中修改外部变量的数值。 在参数前使用[ref]指定使用引用类型。如function f ([ref]$x)。传参时,要求把传入数值转换为引用类型,转换...
If you create a function at the command line and then import a function with the same name, the original function is replaced. Finding hidden commands The ALL parameter of the Get-Command cmdlet gets all commands with the specified name, even if they're hidden or replaced. Beginning in ...
Set-PSReadLineOption-Colors@{ Command ='Magenta'Number ='DarkGray'Member ='DarkGray'Operator ='DarkGray'Type ='DarkGray'Variable ='DarkGreen'Parameter ='DarkGreen'ContinuationPrompt ='DarkGray'Default ='DarkGray'} 示例5:设置多种类型的颜色值 ...