Set-content: o fluxo não era legível

0

Eu tenho um script simples que lê um arquivo e adiciona novas informações a ele. O script obtém dois parâmetros: srv e key . Se srv já existir, adicione key ao final da linha. Caso contrário, adicione ao final do arquivo.

A lógica funciona bem. O problema é que estou recebendo get-content: stream was not readable na maioria dos casos (mas nem sempre) quando srv já existe.

Se eu estiver imprimindo $arrHosts antes de set-content , é a matriz correta. Então eu suponho que seja um problema temporário com o fluxo de $hostsFile .

Estou esperando uma correção no Powershell e não no .NET.

Script:

[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"
}
    
por igor 21.12.2016 / 13:58

1 resposta

0

Parece que você está se aproximando desse problema corretamente. Eu faria do mesmo jeito. Você pode compartilhar alguns exemplos da mensagem de erro? Qual parte do script está jogando o erro?

Eu gostaria de comentar sua pergunta acima, mas não tenho a reputação necessária.

    
por 01.01.2017 / 03:44