当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 之类的操作符(以及更多)快速启动您的游戏

作者:精品下载站 日期:2024-12-14 13:01:25 浏览:18 分类:玩电脑

使用 PowerShell 之类的操作符(以及更多)快速启动您的游戏


与许多其他编程语言一样,PowerShell 具有各种比较运算符。然而,与其他语言不同,这些比较运算符可能看起来有点奇怪。您拥有 eq,而不是 ==。您得到的是 ne,而不是 。这可能会让新手感到困惑。让我们看看本文中的 PowerShell like 运算符和其他比较运算符。

使用 eqceq 运算符测试相等性

要检查一个对象是否等于 PowerShell 中的另一个对象,可以使用 eq 运算符来完成。 eq 运算符比较多种类型的简单对象,例如字符串、布尔值、整数等。使用时,eq 运算符将根据结果返回布尔 TrueFalse 值。

-eq 运算符需要两个值进行比较。假设您将一个字符串分配给名为 $string 的变量。您希望将此变量的值与字符串值“PowerShell”进行比较,以确保它们相等。

在以下示例中,您可以看到我们将值 PowerShell 分配给变量 $string。然后,使用 eq 运算符,该示例将 $string 的值与字符串 powershell 进行比较。很容易,对吧?但是等等,它们实际上并不相同。

PS> $string = "PowerShell"
PS> $string -eq "powershell"
True

请注意,= 是赋值运算符,而不是比较运算符。您不能使用 = 在 PowerShell 中将一个值与另一个值进行比较。

使用 ceq 运算符测试区分大小写

在上面的示例中,请注意 eq 如何返回布尔 True 值,即使字符串不完全相同也是如此。发生此行为的原因是 eq 运算符不区分大小写。要测试区分大小写的相等性,请使用 ceq 运算符。 ceq 运算符与 eq 完全相同,只是区分大小写。

您可以在以下代码片段中看到使用ceq的示例。现在请注意 PowerShell 会区分大小写。

PS> $string -ceq "PowerShell"
True 
PS> $string -ceq "powershell"
False

使用 necne 运算符测试不等式

正如 eqceq 测试相等一样,PowerShell 有一对执行完全相反操作的运算符,称为 necne。与它们的对应操作符一样,这两个操作符执行完全相同但相反的操作。

PS> $string = "PowerShell"
PS> $string -ne "PowerShell"
False
PS> $string -cne "PowerShell"
False
PS> $string -cne "powershell"
True

测试集合中的项目

通常,eqceq 运算符用于标量或单个值,例如字符串、整数和布尔值。但这些运算符还可以查找包含在集合(如数组)中的特定值的实例。

请注意,在下面的示例中,我们创建了一个包含 12 个整数的数组。也许您想查找该数组中等于数字 9 的所有实例。没问题,对数组使用 eq 运算符即可返回所比较整数的所有实例。

PS> $array =@(1,2,3,4,5,6,7,8,9,9,9,9)
PS> $array -eq 9
9
9
9
9
PS> ($array -eq 9).Count
4

测试集合以包含值

由于您刚刚了解了如何使用 eq 运算符来查找数组中的实例,让我们更进一步并介绍“包含”运算符。这些运算符是 containsnotcontainsinnotin。如果集合包含实例,这些运算符将返回布尔TrueFalse值。

查看以下示例。在此示例中,我们创建一个包含九个整数的数组。如果您想要简单地回答该数组是否包含某个整数,则可以使用 containsnotcontains 获得答案。

PS> $array = @(2,4,5,6,8,8,9,9,9)
PS> $array -contains 9
True
PS> $array -notcontains 9
False
PS> $array -contains 5

同样,您还有 innotin 运算符。这些运算符与 containsnotcontains 几乎相同,但有一个例外:要比较的值位于左侧而不是右侧。

$array = @(2,4,5,6,8,8,9,9,9)
9 -in $array
True
9 -notin $array
False

使用 gtge 运算符测试“大于”

如果您需要测试一个数字(整数)是否大于另一个数字或者大于或等于另一个数字,会发生什么?您可以使用 gtge 运算符。这些运算符比较整数。

与其他运算符一样,这些运算符返回布尔 TrueFalse 值,具体取决于一个整数是否大于另一个整数。这两个运算符都测试左侧整数是否大于或大于或等于右侧整数。

在下面的示例中,您可以看到每个运算符的行为方式。

PS> 7 -gt 5
True
PS> 7 -gt 7
False
PS> 7 -ge 7
True

与允许您在集合中查找实例的 eq 运算符类似,您也可以使用 gegt 运算符执行相同的操作。 PowerShell 搜索集合中的每一项,并将每个值与您提供的值进行比较。您可以在下面看到一个很好的例子。

PS> $array =@(1,2,3,4,5,6,7,8,9,9,9,9)
PS> $array -gt 5
6
7
8
9
9
9
9
PS> $array -ge 5
5
6
7
8
9
9
9
9

使用 ltle 运算符测试“小于”

gtge 运算符类似,ltle 运算符执行相同但相反的功能。 ltle 运算符比较两个值,测试左侧的整数是否小于或小于或等于右侧的整数。

您可以在下面的示例中看到,比较集合中每个值的相同功能与 gtge 完全相同。

PS> $array =@(1,2,3,4,5,6,7,8,9,10)
PS> $array -lt 5
1
2
3
4
PS> $array -le 5 
1
2
3
4
5

基于通配符与 PowerShell Like 运算符的匹配

到目前为止,您已经学会了如何进行 1:1 比赛。到目前为止使用的所有运算符都将一个完整值与另一个值进行比较,但 PowerShell 还有另一个技巧。您还可以根据通配符或星号比较值。

假设您只知道字符串中的几个字符。您不能使用 eq,因为 eq 要求您知道整个字符串。使用 PowerShell like 运算符,您不必知道整个字符串。要测试一个值是否与另一个值相似,您可以用通配符替换您不知道的部分。

与其他运算符一样,相同的功能也可以应用于集合。

您可以在下面看到 PowerShell like 的示例,它是区分大小写的兄弟 clike

PS> $string = "PowerShell"
PS> $string -like "*Shell"
True
PS> $array = @("PowerShell","Microsoft")
PS> $array -like "*Shell"
PowerShell
PS> $array -clike "*Shell"
PowerShell

如果未找到匹配项,则运算符 -notlike 返回布尔值 True;如果存在匹配项,则返回 False。如果针对集合使用,它将返回与 -notlike 运算符右侧给出的模式不匹配的所有其他值。使用 -cnotlike 运算符为模式添加区分大小写的功能。

$string = "PowerShell" 
$string -notlike "*Shell"
False
$array = @("PowerShell","Microsoft")
$array -notlike "*Shell"
Microsoft
$array -cnotlike "*shell"
PowerShell
Microsoft

基于正则表达式的匹配

PowerShell 之类的运算符及其相关运算符很方便,但一旦您开始需要更复杂的匹配。到那时,您就可以深入了解正则表达式 (regex) 的深奥世界了。使用 matchnotmatch 运算符,您可以使用正则表达式执行极其复杂的字符串匹配。

类似于 PowerShell like 运算符 match 及其相反的对应项 notmatch,比较两个字符串,返回布尔值 TrueFalse值。此外,与其他运算符一样,可以将相同的行为应用于集合,如下例所示。

PS> $string = "PowerShell"
PS> $string -match "ow"
True 

PS> $array = @("PowerShell","Microsoft")
PS> $array -match "ow"
PowerShell

PS> $string = "PowerShell"
PS> $string -cmatch "po"
False
PS> $string -cmatch "Po"
True

PS> $array = @("PowerShell","Microsoft")
PS> $array -cmatch "Po"
PowerShell

概括

在本文中,您了解了 PowerShell like 运算符和许多其他运算符,以及如何将每个运算符用于单个值和集合。您已经看到了输出如何根据运算符以及标量还是集合而有所不同。

此外,您还看到了区分大小写的运算符、如何根据正则表达式或通配符进行匹配的匹配运算符,以及用于测试对象是否包含特定值或特定对象中是否存在某个值的包含运算符。

[玩转系统] 使用 PowerShell 之类的操作符(以及更多)快速启动您的游戏

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯