迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 Windows PowerShell 中获取命令行参数

作者:迹忆客 最近更新:2024/03/04 浏览次数:

我们使用称为 param() 的 Windows PowerShell 参数函数处理参数。Windows PowerShell 参数函数是任何脚本的基本组件。一个参数是开发人员如何让脚本用户在运行时提供输入。

在本文中,你将学习如何使用参数函数创建脚本、使用它们以及构建参数的一些最佳实践。


在 PowerShell 脚本中定义参数

管理员可以使用参数函数 param() 为脚本和函数创建参数。一个函数包含一个或多个由变量定义的参数。

Hello_World.ps1

param(
     $message
)

但是,为了确保参数只接受你需要的输入类型,最佳实践规定使用参数块 [Parameter()] 为参数分配数据类型,并在变量前用方括号 [] 括住数据类型。

Hello_World.ps1

param(
    [Parameter()]
    [String]$message
)

在上面的示例 Hello_World.ps1 中,变量 message 仅在给定值具有数据类型 String 时才接受传递的值。


PowerShell 脚本中的命名参数

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

在这个例子中,我们创建了一个 Hello_World.ps1 并在参数函数中定义了变量。请记住,我们可以在参数函数中放置一个或多个变量。

Hello_World.ps1

param(
    [Parameter()]
    [String]$message,
    [String]$emotion
)

Write-Output $message
Write-Output "I am $emotion"

然后,我们可以在执行 .ps1 文件时使用命名参数作为参数。

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'

输出:

Hello World!
I am happy

为 PowerShell 脚本中的参数分配默认值

我们可以通过在脚本中给参数一个值来为参数预分配一个值。然后,在不从执行行传递值的情况下运行脚本将采用脚本内定义的变量的默认值。

param(
    [Parameter()]
    [String]$message = "Hello World",
    [String]$emotion = "happy"
)

Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1

输出:

Hello World!
I am happy

PowerShell 脚本中的切换参数

我们可以使用的另一个参数是 [switch] 数据类型定义的 switch 参数。switch 参数用于二进制或布尔值以指示 truefalse

Hello_World.ps1

param(
    [Parameter()]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if($display){
    Write-Output $message
    Write-Output "I am $emotion"
}else{
    Write-Output "User denied confirmation."
}

我们可以使用下面的语法使用 script 参数调用我们的脚本。

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false

输出:

User denied confirmation.

PowerShell 脚本中的强制参数

执行脚本时必须使用一个或多个参数是很常见的。我们可以通过在参数块 [Parameter()] 中添加 Mandatory 属性来使参数成为强制性参数。

Hello_World.ps1:

param(
    [Parameter(Mandatory)]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if($display){
    Write-Output $message
    Write-Output "I am $emotion"
}else{
    Write-Output "User denied confirmation."
}

执行 Hello_World.ps1 时,Windows PowerShell 将不允许脚本运行并提示你输入值。

.\Hello_World.ps1

输出:

cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:

上一篇:在 PowerShell 的命令输出中添加新行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Windows PowerShell 中的 Base64 编码

发布时间:2024/03/04 浏览次数:62 分类:编程语言

本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。

在 Windows PowerShell 中写入输出

发布时间:2024/03/04 浏览次数:121 分类:编程语言

本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。

在 PowerShell 中注释代码

发布时间:2024/03/04 浏览次数:197 分类:编程语言

本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便