- PowerShell功能特点
- PowerShell历史
- PowerShell和命令提示符的区别
- PowerShell与Bash Shell的区别
- PowerShell以管理员身份运行
- Windows PowerShell ISE
- PowerShell核心
- 创建并运行PowerShell脚本
- PowerShell注释
- PowerShell Cmdlet
- PowerShell基本cmdlet命令
- PowerShell Get-childItem命令
- PowerShell Get-Item命令
- PowerShell Get-Location命令
- PowerShell set-item命令
- PowerShell set-location命令
- PowerShell new-item命令
- PowerShell copy-item命令
- PowerShell move-item命令
- PowerShell remove-item命令
- PowerShell rename-item命令
- PowerShell add-content命令
- PowerShell clear-content
- PowerShell get-content命令
- PowerShell get-date命令
- PowerShell set-content命令
- PowerShell out-file命令
- PowerShell write-host命令
- PowerShell get-command命令
- PowerShell invoke-command命令
- PowerShell get-help命令
- PowerShell start-process命令
- PowerShell test-path命令
- PowerShell foreach-object命令
- PowerShell sort-object命令
- PowerShell where-object命令
- PowerShell变量
- PowerShell自动变量
- PowerShell首选项变量
- PowerShell数组
- PowerShell哈希表
- PowerShell运算符
- PowerShell算术运算符
- PowerShell赋值运算符
- PowerShell比较运算符
- PowerShell逻辑运算符
- PowerShell重定向运算符
- PowerShell拆分和合并运算符
- PowerShell if语句
- PowerShell if-else语句
- PowerShell else-if语句
- PowerShell Switch语句
- PowerShell Do-While循环
- PowerShell for循环
- PowerShell ForEach循环
- PowerShell While循环
- PowerShell Continue和Break
- PowerShell字符串
- PowerShell函数
- PowerShell Try Catch Finally
PowerShell函数
如果需要在多个脚本中使用相同的代码,则可以使用PowerShell函数。
函数是PowerShell语句的列表,其名称由用户分配。 当我们执行一个函数时,我们键入一个函数的名称。
像cmdlet一样,函数也可以具有参数。 可以从管道或命令行中读取功能参数。
在PowerShell中,函数返回可以分配给变量或传递给cmdlet或其他函数的值。 通过使用return
关键字,可以指定返回值。
1.语法
以下块描述了函数的语法:
function [<scope:>]<name> [([type]$parameter1[,[type]$parameter2])] { param([type]$parameter1 [,[type]$parameter2]) dynamicparam {<statement list>} begin {<statement list>} process {<statement list>} end {<statement list>} }
上面的语法包括以下术语:
function
关键字- 函数名称(
name
) - 范围(可选)
- 任意数量的命名参数
- 花括号
{}
中包含一个或多个PowerShell命令。
2.函数范围
在PowerShell中,函数在创建它的作用域中存在。如果函数在脚本中,则该功能仅可用于该脚本中的语句。
在全局范围内指定函数后,可以在其他函数,脚本和命令行中使用它。
3.简单函数
以下块描述了如何在PowerShell中创建最简单的函数:
function <function-name> { statement-1 statement-2 statement-N }
要将多个语句添加到函数中,必须使用分号来分隔语句或在单独的行上键入每个语句。要使用该函数,请按以下块中的说明键入函数的名称:
Function-name
示例:
PS C:\>function write-command PS C:\>{ PS C:\> echo "Windows Operating System" PS C:\> echo "Linux operating System" PS C:\>}
在PowerShell控制台中键入以下命令以获取以上示例的输出:
PS C:\> write-command
输出结果:
Windows Operating System Linux operating System
4.高级函数
高级函数是可以执行类似于使用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: xntutor Hi xntutor!
5.函数实例
示例1: 以下示例是一个简单函数,它返回当前日期。
PS C:\> function Get-DateTime() >> { >> return Get-Date >> }
在PowerShell控制台中键入以下命令以获取以上示例的输出:
PS C:\> Get-DateTime
执行(调用)上面函数,得到以下结果:
2020年2月6日 9:45:54
示例2:以下示例是一个函数,该函数接受一个参数并在该参数上返回一个值。
PS C:\> function Get-Square([int]$x) >> { >> $res = $x * $x >> return $res >> }
键入以下命令以从用户获取的输入参数值:
PS C:\> $x = Read-Host 'Enter a value'
执行结果如下所示:
Enter a value: 1999
键入以下命令,以将函数的返回值存储在显示函数输出的变量中:
PS C:\> $sqres = Get-Square $x
执行上面函数:
PS C:\> Write-Output "$x * $x = $sqres"
得到以下结果
1999 * 1999 = 3996001
扫描二维码
程序员编程王