我有一个简单的脚本,可以读取文件并向其中添加新信息。该脚本获取 2 个参数:srv
和key
。如果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
看起来你正在正确地解决这个问题。我会用同样的方式。你能分享一些错误消息的例子吗?脚本的哪一部分引发了错误?
我想对您的上述问题发表评论,但我并不具备所需的声誉。