PowerShell函数(Function)函数基本操作:
#创建函数
Function GetSQLService
{
Get-Service -DisplayName "*SQL*"
}
#调⽤函数,直接写函数名
GetSQLService
#查看函数定义
$Function:GetSQLService
#导出函数定义到⽂本
$Function:GetSQLService | Out-File E:\GetSQLService.ps1
#删除函数
del Function:GetSQLService
#查看内部⾃定义函数:
dir function: | ft -AutoSize
创建带参数的函数,三种⽅法(会覆盖同名函数):
#创建带参数的函数,三种⽅法(会覆盖同名函数)
Function GetSQLService($ServiceName)
{
Get-Service -DisplayName "*$ServiceName*"
}
Function GetSQLService
{
param($ServiceName)
Get-Service -DisplayName "*$ServiceName*"
}
#有默认值的参数
Function GetSQLService
{
param($ServiceName='SQL')
Get-Service -DisplayName "*$ServiceName*"
}
#多个参数
Function GetSQLService
{
param($ServiceName,$KeyWord)
Get-Service -DisplayName "*$ServiceName*$KeyWord*" | Format-Table -AutoSize
}
调⽤函数:
GetSQLService
GetSQLService SQL
GetSQLService -ServiceName SQL
GetSQLService -KeyWord MSSQLSERVER
GetSQLService -ServiceName SQL -KeyWord MSSQLSERVER
万能参数,⽆需声明参数,直接使⽤内部参数:
Function GetSQLService
{
Get-Service -DisplayName "*$args*"
}
#这⾥⽤其他参数名,调⽤时函数将⽆法识别参数,不可这样使⽤。只能⽤$args Function GetSQLService
{
Get-Service -DisplayName "*$ServiceName*"
}
求和函数⽰例:
#求和函数,调⽤函数时参数 $args 可以同时输⼊多个值。
Function Add
{
$sum=0
$args | foreach {$sum=$sum+$_}
$sum
}
Add 1 2 3 4 5 6 7 8 9 10
返回多值的函数,也可使⽤ return 返回,使⽤ return 后函数将结束返回,后⾯语句不会执⾏Function Test { "Zero", "One", "Two", "Three" }
Function Test
{
"Zero"
"One"
"Two"
powershell创建目录"Three"
}
Function Test { "Zero" "One" "Two" "Three" } #这样写错误!
Function Test
{
"Zero"
"One"
return "Two"
"Three"
}
输出注释,不会作为结果:
Function Test
{
Write-Host "此处为注释不作为结果,但同样会输出" "Zero"
"One"
return "Two"
"Three"
}
Test
$Test = Test
隐藏函数内部的错误:
#函数内部有错误,调⽤时也返回错误!Function Test { Stop-Process -Name "kk123456" }
#使⽤参数 $ErrorActionPreference 可隐藏错误Function Test
{
$ErrorActionPreference="SilentlyContinue"
Stop-Process -Name "kk123456" $ErrorActionPreference="Continue"
}
管道应⽤:函数内部处理上⼀个的结果集:Function Test { $input }
2,0,1,2 | Test
Function Test
{
Foreach ($element in $input)
{
"value: "+$element
}
}
2,0,1,2 | Test
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论