设置内容:流不可读

设置内容:流不可读

我有一个简单的脚本,可以读取文件并向其中添加新信息。该脚本获取 2 个参数:srvkey。如果srv已经存在,则将其添加key到行尾。如果不存在,则将其添加到文件末尾。

逻辑很好。问题是我get-content: stream was not readable在大多数情况下(但并非总是)得到的是srv已经存在的内容。

$arrHosts如果我刚好在 之前打印set-content,则它是正确的数组。因此,我认为这是流式传输的一个临时问题$hostsFile

我希望在 Powershell 而不是 .NET 中修复该问题。

脚本:

[string]$srv = $args[0]
[string]$key = $args[1]
$hostsFile = '..\file_destination..\..'
[array]$arrHosts = Get-Content $hostsFile

if ($arrHosts -ne $null)
{
    for ($i=0; $i -le $arrHosts.Length; $i++)
    {
        if ($arrHosts[$i] -match "$srv\s")
        {
            $arrHosts[$i] += " $key"
            break
        }
        elseif ($i -eq $arrHosts.Length)
        {   
            $arrHosts += $srv+" "+$key
            break
        }
    }
    $arrHosts | Set-Content -Path $hostsFile
}
else
{
    Add-Content -path $hostsFile -value "`n$srv $key"
}

答案1

看起来你正在正确地解决这个问题。我会用同样的方式。你能分享一些错误消息的例子吗?脚本的哪一部分引发了错误?

我想对您的上述问题发表评论,但我并不具备所需的声誉。

相关内容