函数用法
发布时间:2020-12-15 23:07:20 所属栏目:安全 来源:网络整理
导读:与其他语言一样,powershell也存在自己的函数,这节主要介绍一些函数的用法。 1、定义一个函数 function add #add是函数名{ param( #函数内部包含的变量,[int]表示定义的变量只能是整型 [int]$a,[int]$b ) echo "$a + $b" #函数体,具体执行的代码} PS C:
与其他语言一样,powershell也存在自己的函数,这节主要介绍一些函数的用法。 1、定义一个函数function add #add是函数名
{
param( #函数内部包含的变量,[int]表示定义的变量只能是整型
[int]$a,[int]$b
)
echo "$a + $b" #函数体,具体执行的代码
}
PS C:&; add 2 3 #调用函数,2 3 是传入add函数的两个变量,若传入的变量不是整型会报错 2 + 3 PS C:&; add 2 2 + 0 PS C:&; add #整型变量不足两个变量默认是0,字符型变量默认是“” 0 + 0 PS C:&; add 1 2 3 1 + 21
2、函数的返回值当函数只有一个返回值时,返回的是一个值,若有多个返回值时,返回一个数组。 function a([int] $x)
{
"$x"
"$x + $x"
"$x * $x"
}
PS C:&; $b = a 2 PS C:&; $b 2 2 + 2 2 * 2 PS C:&; $b[1] 2 + 2 PS C:&; $b -is [array] True
? 3、限定参数的值的范围? 函数中传入的参数可以提前设定好值,这个方法是ValidateSet,可以理解成枚举。 function meiju
{
param(
[ValidateSet(‘a‘,‘b‘,‘c‘)] #设定$n的取值范围是“a”,“b”,“c”其中之一
$n
)
echo "$n"
}
PS C:&; meiju b #传入的值是“abc”其中之一 b 若传入abc以外的值会报错:
4、限定传入参数的个数powershell的函数中给出了一个限定传入参数个数的方法,ValidateCount,可以设定传入值得个数。 function num
{
param(
[ValidateCount(1,3)] #限定允许传入的值是1-3个,不符合要求报错
[string[]] #声名$a是一个字符串数组
$a
)
echo $a
}
PS C:&; num 1,2,3 #num函数接收一个数组,数组的长度是3 1 2 3 若数组的长度大于3,则报错 ? ? 5、万能变量一般的,我们在设定变量时候会提前声名变量的类型,字符型、整型、日期型......,若不声明可以接受整型也可以接受字符型,但是如果我们不知道有多少个变量要传入可以用$args,它是一个万能的变量,不限传入的个数,也不限定类型,也可以省略定义。 function all
{
foreach($i in $args)
{
echo $i
}
}
PS C:&; all 1 1 PS C:&; all ‘abc‘ abc PS C:&; all ‘abc‘ 123 ‘1q2w‘ 4.12p abc 123 1q2w 4.12p
6、隐藏输入的密码? 在Parameter这个限制语句之前加了一句“[System.Security.SecureString]”,这个修饰语句用于将输入参数设置为安全字符串类型,这样输入这个参数的值时,就会变成星号了 function secret { param( [System.Security.SecureString] [parameter(mandatory=$true)] $passwd ) $mima = (New-Object System.Management.Automation.PSCredential("ticp",$passwd)).GetNetworkCredential().Password echo $mima }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 《数据结构》实验二 线性表的实验
- twitter-bootstrap – 如何使Bootstrap手风琴在点击标题div
- angularjs – 认证后重定向到原始请求,Angular-Fullstack?
- Bootstrap之表格checkbox复选框全选
- 如何从Scala公共API屏蔽实现级别类,特征和对象?
- 用于Vim的Python和Django插件
- Angular2 – CKEditor使用
- angular – rxjs combineLatest和Anguar2对Observable Arra
- Scala对class/object反射
- authentication – 使用angularjs和restangular注入auth头