本文概述
- 函数范围
- 函数简单
- 进阶函数
函数是PowerShell语句的列表, 其名称由用户分配。当我们执行一个函数时, 我们键入一个函数的名称。
像cmdlet一样, 函数也可以具有参数。可以从管道或命令行中读取函数参数。
在PowerShell中, 函数返回可以分配给变量或传递给cmdlet或其他函数的值。通过使用return关键字, 我们可以指定返回值。
句法
以下块描述了函数的语法:
function [<
scope:>
]<
name>
[([type]$parameter1[, [type]$parameter2])]
{
param([type]$parameter1 [, [type]$parameter2])
dynamicparam {<
statement list>
}
begin {<
statement list>
}
process {<
statement list>
}
end {<
statement list>
}
}
上面的语法包括以下术语:
- 函数关键字
- 你给的名字
- 范围(可选)
- 任意数量的命名参数
- 花括号{}中包含一个或多个PowerShell命令。
- 在PowerShell中, 函数在创建它的作用域中存在。
- 如果函数在脚本中, 则该函数仅可用于该脚本中的语句。
- 在全局范围内指定函数后, 我们可以在其他函数, 脚本和命令行中使用它。
function <
function-name>
{
statement-1
statement-2
statement-N
}
要将多个语句添加到函数中, 我们必须使用分号来分隔语句或在单独的行上键入每个语句。
要使用该函数, 请按以下块中的说明键入函数的名称:
Function-name
例:
PS C:\>
function write-command
>
>
{
>
>
echo "Windows Operating System"
>
>
echo "Linux operating System"
>
>
}
在PowerShell控制台中键入以下命令以获取以上示例的输出:
PS C:\>
write-command
输出
Windows Operating System
Linux operating System
进阶函数高级函数是可以执行类似于使用cmdlet执行的操作的那些函数。当用户要编写函数而不必编写已编译的cmdlet时, 可以使用这些函数。
使用编译的cmdlet和高级函数之间的主要区别在于, 编译的cmdlet是必须以.NET Framework语言编写的.NET Framework类。而且, 高级函数是使用PowerShell脚本语言编写的。
以下示例描述了如何在PowerShell中使用高级函数:
PS C:\>
function Send-Message
>
>
{
>
>
[CmdletBinding()]
>
>
Param (
>
>
[ Parameter (Mandatory = $true)]
>
>
[string] $Name
>
>
)
>
>
>
>
Process
>
>
{
>
>
Write-Host ("Hi" + $Name + "!")
>
>
}
>
>
}
在PowerShell控制台中键入以下命令以获取以上示例的输出:
PS C:\>
Send-Message
输出
cmdlet Send-Greeting at command pipeline position 1
Supply values for the following parameters:
Name: Aman
Hi Aman!
函数实例
示例1:以下示例是一个简单函数, 它返回当前日期
PS C:\>
function Get-DateTime()
>
>
{
>
>
return Get-Date
>
>
}
在PowerShell控制台中键入以下命令以获取以上示例的输出:
PS C:\>
Get-DateTime
输出
15 November 2019 14:41:17
示例2:以下示例是一个函数, 该函数接受一个参数并在该参数上返回一个值。
PS C:\>
function Get-Square([int]$x)
>
>
{
>
>
$res = $x * $x
>
>
return $res
>
>
}
键入以下命令以从用户处获取上述示例的输入:
PS C:\>
$x = Read-Host 'Enter a value'
输出
Enter a value: 10
键入以下命令, 以将函数的返回值存储在显示函数输出的变量中:
PS C:\>
$sqres = Get-Square $x
以下命令显示结果:
PS C:\>
Write-Output "$x * $x = $sqres"
【PowerShell函数定义和使用】输出
10 * 10 = 100
推荐阅读
- PowerShell Get-childItem用法示例
- PowerShell ForEach-Object遍历对象
- PowerShell ForEach循环语句
- PowerShell for循环语句
- 如何使用PowerShell执行策略()
- PowerShell Else-if语句
- android studio3.4打jar包
- applycall和bind
- 10.3android输入系统_必备Linux编程知识_任意进程双向通信(scoketpair+binder)