gpt4 book ai didi

powershell - $null/empty 交互式 vs 脚本差异

转载 作者:行者123 更新时间:2023-12-03 14:32:30 25 4
gpt4 key购买 nike

为什么以下 3 行在 PowerShell 提示符下运行没有错误,但在脚本 (foo.ps1) 中运行时返回错误?在这两种情况下,$b -eq $null返回 $true$b.GetType()$null 上调用返回错误,但 $b 有一些不同之处在互动环节。

$a = 1,2,3
[array]$b = $a | where {$false}
$b | where {$_.GetType()}

当作为脚本运行时,最后一行返回

You cannot call a method on a null valued expression.



我在阻止阵列展开的不幸尝试中遇到了这个问题。删除 [array]使错误消失,我将继续尝试更好地理解展开规则(我希望 $b 是一个空数组,而不是 $null ),但我想了解差异的原因这里。

最佳答案

有一个perfect explanation

  • 通过键入 [array],您可以告诉变量是强类型的。我怀疑 .NET 代码中的这一行会触发异常,因为它需要一个类型作为变量...
    http://referencesource.microsoft.com/#mscorlib/system/array.cs,72
  • 关于powershell - $null/empty 交互式 vs 脚本差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656872/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com