迹忆客 专注技术分享

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

使用 PowerShell 测试变量的数据类型

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

我们通常使用的 PowerShell 中的一种技术是获取用户输入并将其存储在变量中。但是,在某些情况下,从用户那里获取的用户输入与我们预期的数据类型不同。

一个例子是一个用户输入了他的名字,一个 String 数据类型,而不是他的年龄,它是一个 Int 或整数数据类型。在本文中,我们将讨论如何处理可变数据类型不匹配的几种方法,以及如何使用 PowerShell 充分纠正它们。


使用 PowerShell 测试变量

我们将向你展示处理可变数据类型不匹配的三个示例。让我们从使用参数开始。

使用参数测试变量

要求用户输入的一种方法是在脚本执行期间预先配置强制参数。在预先确定参数时,我们可以添加一个数据类型来支持该参数。

这样,脚本可以在脚本开始之前判断用户是否传递了有效变量。让我们看一下这个例子。

假设我们需要运行脚本的用户的年龄。我们可以运行下面的脚本来强制脚本只接受整数值。

示例代码(param.ps1):

param(
    [Parameter(Mandatory)]
    [Int]$age
)
Write-Output $age

假设用户已经使用 .\param.ps1 -age 2 执行了它,脚本应该将它与数字的输出一起返回。

输入:

Supply values for the following parameters:
age: 2

输出:

2

但是,如果用户尝试使用除整数之外的数据类型传递不同的值,例如 .\param.ps1 -age "hello",脚本将抛出错误。

输入:

Supply values for the following parameters:
age: hello

输出:

"System.Int32". Error: "Input string was not in a correct format."

也许我们正在脚本执行期间处理用户输入。以下方法将在脚本执行过程中检查变量的数据类型。

使用运算符测试变量

检查变量数据类型的另一种方法是使用条件运算符。条件运算符是将两个或多个值匹配在一起产生布尔变量的函数。

我们将在本文中使用条件运算符 -is。在这种情况下,我们可以通过将变量直接与数据类型匹配来使用 -is 运算符。

示例代码:

$age -is [Int]

输出:

True

例如,使用下面的代码片段,如果变量具有整数值,脚本将输出 True 的值。否则,。由于这些输出导出一个布尔值,我们可以使用条件语句来执行特定的操作,例如,也许使用 -as 运算符转换变量的数据类型。

示例代码:

if($age -is [Int]){
    Write-Output "Age $age is an integer"
}else{
    Write-Output "Age is not an integer... Converting"
    try{
        $age = $age -as [Int]
        Write-Output "Converted! Age $age is now an integer"
    }catch{
        Write-Output "Input is a string, could not be converted."
    }
}

输出:

Age is not an integer... Converting
Converted! Age 2 is now an integer

用函数测试变量

我们的最后一个示例与上一个示例类似,因为我们将使用运算符来创建我们的自定义函数。我们可以使用这些运算符创建一个函数,该函数将检查变量的数据类型并返回一个布尔值。

下面这个函数的好处在于,与我们之前的例子相比,这个函数还会检查是否为负值,为我们提供更准确的结果。

示例代码:

function isNumeric($_){
    return $_ -is [int]  -or $_ -is [int16]  -or $_ -is [int32]  -or $_ -is [int64]
}
isNumeric(-1)

输出:

True

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

本文地址:

相关文章

在 Windows PowerShell 中获取命令行参数

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

本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。

Windows PowerShell 中的 Base64 编码

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

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

在 Windows PowerShell 中写入输出

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

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

在 PowerShell 中注释代码

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

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

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便