PowerShell 中的不同参数

在本文中,我们将学习什么是参数函数、可以在参数中定义的不同类型的变量、不同类型的参数及其示例用法。
PowerShell 中的参数
像我们这样的管理员可以使用参数 param()
函数为脚本和函数创建参数。参数脚本块包含一个或多个由变量表示的参数。
示例代码:
param ($myVariable)
然而,为了确保声明的参数只接受我们需要的输入类型,最佳实践是通过将数据类型用方括号 []
括起来来给参数分配一个数据类型,放在变量之前。
示例代码:
param ([String]$myVariable)
命名参数
在脚本中使用参数的一种方式是通过命名参数。当通过命名参数调用函数或脚本时,我们使用变量名作为参数的全名。
示例代码:
param ([String]$name)
然后我们可以在执行 .ps1
文件时使用命名参数进行参数传递。
示例代码:
powershell.exe .\sample.ps1 -name "John"
参数默认值
我们可以通过事先在脚本中给参数赋值来为参数分配默认值。然后,不传值到控制台运行脚本时,将使用脚本中预定义的变量的默认值。
示例代码:
param ([String]$name = "John")
开关参数
我们可以使用的另一种参数类型是由 [switch]
数据类型定义的开关参数。开关参数用于布尔值,以指示 true
或 false
。
示例代码:
param ([switch]$isEnabled)
强制参数
通常,我们有一个或多个必需参数,必须在执行脚本时使用。因此,如果我们没有为这些参数分配值,脚本可能会失败。
我们可以通过在参数数据类型块 [Parameter()]
内插入 Mandatory
数据类型来使参数变为强制性。
示例代码:
param (
[Parameter(Mandatory)]
[String] $servername
)
如果没有值,PowerShell 将不允许脚本运行,并在执行时提示您输入值。值得注意的是,没有 [Parameter(Mandatory)]
块的参数被视为可选参数。
管道参数
大多数 PowerShell cmdlet 允许您使用管道符号 (|
) 传递数据。在使用参数时,我们可以利用这个 PowerShell 特性。
使用这种方法将为运行链式 PowerShell 文件提供许多机会。
文件 - pipeline.ps1
:
param([parameter(ValueFromPipeline)]$pipedVar)
Write-Output $pipedVar
示例代码:
"This string is from the pipeline." | .\pipeline.ps1
输出:
This string is from the pipeline.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn