迹忆客 专注技术分享

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

使用 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 PowerShell 过滤文件和文件夹

发布时间:2024/02/05 浏览次数:195 分类:编程语言

本文将讨论 PowerShell Get-ChildItem cmdlet,我们将使用它来获取目录中的所有项目并利用其过滤器开关参数。在某些情况下,我们需要检查文件是否存在于特定位置或目录中。

从 PowerShell 中的文件名中删除路径和扩展名

发布时间:2024/02/05 浏览次数:86 分类:编程语言

本教程将介绍在 PowerShell 中从文件名中删除路径和扩展名的不同方法。PowerShell 支持处理系统中的各种文件操作。你可以在 PowerShell 中执行创建、复制、移动、重命名、编辑、删除和查看文件等

使用 PowerShell 连接文件

发布时间:2024/02/05 浏览次数:159 分类:编程语言

本教程将教你使用 PowerShell 连接文件。PowerShell 允许你执行不同的文件操作,例如创建、复制、移动、删除、查看和重命名文件。

使用 PowerShell 从路径中提取文件名

发布时间:2024/02/05 浏览次数:52 分类:编程语言

本教程将教你如何使用 PowerShell 从路径中提取文件名。文件路径告诉文件在系统上的位置。在 PowerShell 中处理文件时,你可能只需要从路径中获取文件名。

使用 PowerShell 从计算机存储中删除证书

发布时间:2024/02/05 浏览次数:200 分类:编程语言

本教程将教你使用 PowerShell 从证书存储中删除证书。在 Windows 操作系统中,证书存储在计算机本地的证书存储中。它包含不同认证机构颁发的各种证书。

在 PowerShell 中清除变量内容

发布时间:2024/02/05 浏览次数:69 分类:编程语言

本教程将教你在 PowerShell 中清除变量内容。变量是值的存储位置。你可以将所有类型的值存储在 PowerShell 变量中。

PowerShell 中的空变量

发布时间:2024/02/05 浏览次数:64 分类:编程语言

本文讨论了 null 变量、在 PowerShell 中以不同语法使用 null 变量的影响以及检查 null 值的方法。PowerShell 处理值为 null 的 $Null 对象,并且某些命令需要一些输出才能生成。

PowerShell 中的管道变量

发布时间:2024/02/05 浏览次数:77 分类:编程语言

本文将向我们展示如何通过使用 PowerShell 的管道变量在 Windows PowerShell 中使用相同的概念和技术。我们通常使用 this 变量或关键字来表示各种编程语言中表达式中出现的最后一个对象。

PowerShell 通过网络复制文件

发布时间:2024/02/05 浏览次数:162 分类:编程语言

本教程将教你使用 PowerShell 通过网络共享复制文件。PowerShell 是一个强大的工具,可让你从其命令行界面执行不同的文件和文件夹操作。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便