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

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

作者:精品下载站 日期:2024-12-14 04:51:05 浏览:16 分类:玩电脑

PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例


[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

PowerShell 简介 null

以下文章提供了 PowerShell null 的概述。 PowerShell $Null 是一个自动变量,除了未识别或不存在的值之外什么也不包含,它也被视为对象。 PowerShell 将 $Null 对象视为 null 值,并且某些命令需要生成一些输出,如果存在任何错误,它们会生成 null 值,并且也可用于脚本中的故障排除目的,以检查命令是否生成任何值。

语法:

虽然 null 没有特定的语法,但我们可以使用自动预定义变量 $NULL 来实现这一点。

$null 变量在 PowerShell 中如何工作?

当您输入 $Null 时,它不会产生任何结果,如下所示。

代码:

$null

当你声明一个变量并且没有赋值时,它默认保存的值是$NULL。

代码:

$a
$a -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

您还可以将 $null 值显式分配给变量,如下所示。

代码:

$val = $null
Write-Output "The value is : $val"

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

很多时候,在编写脚本时,我们需要确定该值是否为 Null,但它在控制台中不可见。要确定变量是否将保存空值,我们需要使用特殊字符或可以识别变量保存空值的内容。我们将在这里使用它{}。您可以像其他括号一样使用任何东西。

代码:

$val = $null
Write-Output "The value is : {$val}"

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

PowerShell null 的示例

下面给出了 PowerShell null 的示例:

例子#1

“ ”和 $NULL 之间的区别。

虽然(“ ”和$NULL)都表示空值,但它们之间有很大区别。

首先,两者并不相等。

代码:

"" -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

当您声明一个没有任何值的变量时,其输出为 $NULL。

代码:

$a
$a -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

但是当你将它与“ ”值进行比较时,输出将是错误的。

代码:

$a -eq ""

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

“ ”代表虚空。这意味着当您将该值分配给变量时,其输出将是一个空行,而 $null 输出什么也没有。

代码:

$a = ""
$a

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

现在$a 不是$null。

代码:

$a -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

检查这一点的另一种方法是使用 .NET 方法来检查 $null 值与使用 String 类的“ ”不同。

代码:

$null -eq [String]::Empty

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

例子#2

Null 是一个未定义的变量。

任何其值未初始化的变量都被视为未定义变量。

在此示例中,$service 未提前定义,因此其值未初始化并被视为 Null。

代码:

$null -eq $service

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

例子#3

函数为空。

当函数不返回任何内容时,其输出为 Null。

代码:

Function ReturnsNull{}
$val = ReturnsNull
$val -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

上面的输出为 true,因为该函数没有返回任何内容。

上面的示例与下面的示例类似,因为它们不返回任何内容。

代码:

Function ReturnsNull{ return }
$val = ReturnsNull
$val -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

另一个函数的例子。

代码:

Function ReturnsNull{
$svc = Get-Service NonExist -EA Ignore
if($svc){ return $svc }
}
$val = ReturnsNull
$val -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

这里,服务不存在,因此函数返回 Null。

例子#4

PowerShell 函数范围的空值。

当变量在其作用域之外被调用时,它们的值始终为 null,因为它们是外部作用域的未初始化值。

代码:

Function TestScope($a){
Write-Output "Value of a : $a"
$b = 20
}
$a = 10
TestScope $a
Write-Output "Value of b : [$b]"

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

在上面的示例中,函数 TestScope 知道 $a 变量的值,因为它是在函数外部声明的,但 $b 值是在函数内部声明的,因此函数外部不知道,因此 $b 的值也是未知的变量显示 NULL。要在函数外部获取 $b 值,需要使用 return 命令并需要从函数中捕获该值。当您将 $b 定义为函数外部的全局变量并在作用域中更改其值时,这也适用。

例子#5

数值方程为空。

当我们在数值方程中使用 $null 值时,它的行为与值 0 类似。

代码:

$null + 1
$null + 5 + 10
4 + $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

对于乘法,它取决于 $Null 值的位置。

代码:

$null * 4
4 * $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

除法运算的作用相同,$null 被视为 0。

代码:

$null / 10
10 / $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

例子#6

数组为空值。

当我们调用数组范围之外的索引时,它会给出 null 输出。

代码:

$Colors = "Red","Yellow","Pink"

在此示例中,我们有一个包含 3 个值的数组,如果我们调用索引为 4 的 Colors 数组,它将给出 null 值,因为该索引不存在。

代码:

$Colors[4]
$Colors[4] -eq $null

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

在数组情况下,$null 不被视为 0。当它用于索引时,它会生成异常。

代码:

$Colors[$null]

输出:

[玩转系统] PowerShell 空 | $null 变量如何在 PowerShell 中工作?示例

结论

每个变量赋值和函数返回值都以 null 开头,直到定义为止。它们对于任何脚本来说都是可以忽略不计的,因为它不显示任何输出,但如果您将一个输出的值用于另一个输出并且输出为空,则可能对脚本构成很大的威胁。对于大型脚本,如果没有正确处理空值,故障排除可能会很麻烦。

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

取消回复欢迎 发表评论:

关灯