gpt4 book ai didi

powershell - 奇怪的PowerShell问题:[ref]无法应用于不存在的变量

转载 作者:行者123 更新时间:2023-12-02 23:35:48 26 4
gpt4 key购买 nike

运行一段时间后,我的Powershell脚本以“[ref]退出,无法应用于不存在的变量”(实际上工作了一段时间)

该代码段类似于

function outputData(...) {
$data = $null
if ($outputQueue.TryTake([ref] $data, 1000) -eq $false) {
continue
}
Write-Host $data
}

最后抛出的详细错误如下:
[ref] cannot be applied to a variable that does not exist.
At C:\Program Files\mfile.ps1:1213 char:13
+ if ($outputQueue.TryTake([ref] $data, 1000) -eq $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (data:VariablePath) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : NonExistingVariableReference

我可以问一下原因吗?

谢谢 !

最佳答案

虽然错误消息并不总是很有帮助,但此消息是:

它告诉您尝试与$data一起使用的[ref]变量必须已经存在,即必须已明确创建,在PowerShell中意味着:

  • 通过为其分配值来创建它-即使该值为$null
  • 或使用New-Variable创建它。

  • 一个简化的例子:
    $data = $null # create variable $data

    # OK to use $data with [ref], now that it exists.
    # $data receives [int] value 10 in the process.
    [int]::TryParse('10', [ref] $data)

    关于powershell - 奇怪的PowerShell问题:[ref]无法应用于不存在的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55328745/

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