PowerShell介绍 第十三回 定义参数
来源:互联网 发布:vb软件下载 编辑:程序博客网 时间:2024/06/16 05:33
经常看到一些脚本可以接受某种形式的输入所, 输入的可能是一个计算机名称、 文件路径等等。曾经我会觉得很神奇,但是现在我已经知道怎么去定义一个参数了。下面我们就来一起学习学习吧。
其实,也挺简单的,用到的就是一下句子:
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
)
Param
(
[parameter(Mandatory=$true,
ParameterSetName="User")] [String[]]
$UserName
)
4. ValueFromPipeline 命名参数
ValueFromPipeline 实际参数指定形式参数通过管道对象接受输入。
5. ValueFromPipelineByPropertyName 命名参数
valueFromPipelineByPropertyName 实际参数指定形式参数通过管道对象的属性接受输入。
6. ValueFromRemainingArguments 命名参数
ValueFromRemainingArguments 实际参数指定形式参数接受未绑定到函数形式参数的其余所有实际参数。
7. HelpMessage 命名参数
HelpMessage 实际参数指定包含对形式参数的简短说明的消息。例如:
Param
(
[parameter(Mandatory=$true,
HelpMessage="this is An array of computer names")]
[String[]]
$ComputerName
)
8. Alias 属性
Alias 属性为参数指定另一个名称。可分配给参数的别名数目没有限制。例如:
Param
(
[parameter(Mandatory=$true)]
[alias("CN")]
[String[]]
$ComputerName
)
以上8种参数属于静态参数,另外还有一种参数叫做验证性参数,这些属性定义 Windows PowerShell 运行时如何验证高级函数的参数。例如:
9. AllowNull 验证属性
AllowNull 属性允许将 cmdlet 必需形式参数的实际参数设置为 Null。例如:
Param
(
[parameter(Mandatory=$true)]
[String]
[AllowNull()]
$ComputerName
)
10. AllowEmptyString 验证属性
AllowEmptyString 属性允许将空字符串作为 cmdlet 必需形式参数的实际参数。
11. AllowEmptyCollection 验证属性
AllowEmptyCollection 属性允许将空集合作为必需形式参数的实际参数。
12. ValidateCount 验证属性
ValidateCount 属性指定形式参数可接受的实际参数的最小和最大数目。如果实际参数的数目超出该范围,则 Windows PowerShell 运行时会生成错误。例如:
Param
(
[parameter(Mandatory=$true)]
[String[]]
[ValidateCount(1,5)]
$ComputerName
)
13. ValidateLength 验证属性
ValidateLength 属性指定形式参数的实际参数的最小和最大长度。如果形式参数的实际参数的长度超出该范围,则 Windows PowerShell 运行时会生成错误。
14. ValidatePattern 验证属性
ValidatePattern 属性指定对形式参数的实际参数模式进行验证的正则表达式。如果形式参数的实际参数与此模式不匹配,则 Windows PowerShell 运行时会生成错误。例如:
Param
(
[parameter(Mandatory=$true)]
[String[]]
[ValidatePattern("[0-9][0-9][0-9][0-9]")] $ComputerName
)
说明:形式参数的实际参数必须是一个四位数,并且每一位必须是 0 到 9 中的一个数字。
15. ValidateRange 验证属性
ValidateRange 属性指定形式参数的实际参数的最小值和最大值。如果形式参数的实际参数超出该范围,则 Windows PowerShell 运行时会生成错误。
16. ValidateScript 验证属性
ValidateScript 属性指定用于对形式参数的实际参数进行验证的脚本。如果脚本结果为 false 或脚本引发异常,则 Windows PowerShell 运行时会生成错误。例如:
Param
(
[parameter()]
[Int]
[ValidateScript({$_ -lt 4})]
$Count
)
说明:Count 参数的值必须小于 4。
17. ValidateNotNull 验证属性
ValidateNotNull 属性指定形式参数的实际参数不能设置为 Null。如果参数值为 Null,则 Windows PowerShell 运行时会生成错误。
18. ValidateNotNullOrEmpty 验证属性
ValidateNotNullOrEmpty 属性指定形式参数的实际参数不能设置为 Null,也不能为空。如果指定了参数,但参数值为 Null、空字符串或空数组,则 Windows PowerShell 运行时会生成错误。
说了那么多,最后上一个超级简单的例子吧。
param($logpath="D:\test")Get-childItem -path $logpath -recurse;最后运行的效果是这样的:
就这么简单,定义了一个可接受输入的参数logpath。
0 0
- PowerShell介绍 第十三回 定义参数
- 在PowerShell中定义参数
- PowerShell介绍 第三回 "PowerShell导入导出"
- PowerShell介绍 第七回 变量
- PowerShell介绍 第八回 数组
- PowerShell介绍 第九回 哈希表
- PowerShell介绍 第六回 WMI介绍
- PowerShell介绍 第十回 管道符
- PowerShell的概念性介绍
- Windows PowerShell介绍
- PowerShell Web Access 介绍
- PowerShell介绍 第二回 "PowerShell执行策略"
- PowerShell入门教程之PowerShell管道介绍
- PowerShell介绍 第五回 字符串及其操作符
- PowerShell中的PassThru参数是什么
- Windows Powershell中的函数参数
- PowerShell介绍 第十一回 对象
- PowerShell介绍 第十二回 函数
- JVM学习
- My coding way (8)
- Linux IPC实践--System V IPC综合实践
- 中文字转拼音取首字母
- 定义软件架构的10个属性
- PowerShell介绍 第十三回 定义参数
- iOS讲解迷惑--MD5加密
- 【LeetCode OJ 005】Longest Palindromic Substring
- Jugiven-To-JAVA-01:toUpperCase(locale)的理解
- CocoaPods的安装记录
- 各个版本matlab下载地址
- 热工计算机实践教学资源
- Android 启动Activity两个属性 .MAIN .LAUNCHER
- java反射机制模式