经常看到一些脚本可以接受某种形式的输入所, 输入的可能是一个计算机名称、 文件路径等等。曾经我会觉得很神奇,但是现在我已经知道怎么去定义一个参数了。下面我们就来一起学习学习吧。
其实,也挺简单的,用到的就是一下句子:
Param( [string]$computerName, [string]$filePath)
可以定义多个接受输入的参数,中间使用逗号隔开,前面可以加[string]等限定输入的类型。
此外,它还可以定义更多的属性,例如:
Param(
[parameter(Mandatory=$true,
ValueFromPipeline=$true)]
[String[]]
$ComputerName
)
[parameter(Mandatory=$true意思是它是必需的;ValueFromPipeline=$true)意思是它接受管道输入; [String[]意思是它接受字符串数组输入。
parameter的属性有许多种,下面一一列举说明:
1. 必须命名参数
[parameter(Mandatory=$true)]
必需实际参数表示在函数运行时形式参数是必需的。如果未指定此实际参数,则形式参数是可选的。
2. 位置命名参数
[parameter(Position=0)]
位置实际参数指定形式参数的位置。如果未指定此实际参数,则在设置形式参数时必须明确指定该形式参数的名称或别名。
3. ParameterSetName 命名参数
ParameterSetName 实际参数指定形式参数所属的形式参数集。如果未指定参数集,则参数属于函数定义的所有参数集。此行为意味着每个参数集必须有一个不属于任何其他参数集的唯一参数。以下示例显示了属于两个不同参数集的两个参数的参数声明。
Param
(
[parameter(Mandatory=$true,
ParameterSetName="Computer")] [String[]]
$ComputerName