PowerShell 中的不同参数

  1. PowerShell 中的参数
  2. 命名参数
  3. 参数默认值
  4. 开关参数
  5. 强制参数
  6. 管道参数
PowerShell 中的不同参数

在本文中,我们将学习什么是参数函数、可以在参数中定义的不同类型的变量、不同类型的参数及其示例用法。

PowerShell 中的参数

像我们这样的管理员可以使用参数 param() 函数为脚本和函数创建参数。参数脚本块包含一个或多个由变量表示的参数。

示例代码:

param ($myVariable)

然而,为了确保声明的参数只接受我们需要的输入类型,最佳实践是通过将数据类型用方括号 [] 括起来来给参数分配一个数据类型,放在变量之前。

示例代码:

param ([String]$myVariable)

命名参数

在脚本中使用参数的一种方式是通过命名参数。当通过命名参数调用函数或脚本时,我们使用变量名作为参数的全名。

示例代码:

param ([String]$name)

然后我们可以在执行 .ps1 文件时使用命名参数进行参数传递。

示例代码:

powershell.exe .\sample.ps1 -name "John"

参数默认值

我们可以通过事先在脚本中给参数赋值来为参数分配默认值。然后,不传值到控制台运行脚本时,将使用脚本中预定义的变量的默认值。

示例代码:

param ([String]$name = "John")

开关参数

我们可以使用的另一种参数类型是由 [switch] 数据类型定义的开关参数。开关参数用于布尔值,以指示 truefalse

示例代码:

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.
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn