PowerShell:成功编写的配置文件在脚本结束后立即消失了吗?

时间:2011-04-18 00:07:50

标签: file powershell

我的脚本将键值存储在哈希中,因此不再处理具有这些键的行。 每次存储新密钥时,都会保存:

function readConf($File) {
$H = @{}
if (test-path -path $File) {
Get-Content $File | ForEach-Object {
$x = $_ -replace "-", ""
$x = $x -replace "Name", ""
$x = $x -replace "Value", ""
$x = $x.Trim()
$L = $x -split "\s{3,}"
#echo(" ok: "+$L+" $H[ $L[0] ] = $L[1]
$H.Neu = Get-Date -uformat "%Y.%m.%d %H:%M:%S"
}
}
$H
}
hConf = readConf($confFile) # no problem so far"
...
while ($true) {
...
if ( $hConf[$key] ) { continue }
$hConf[$key] = $val
$hConf > $confFile ...
} # end of endless while

只要此脚本正在运行,我就可以看到并打开此configFile, 一切都在那里,应该在那里。 但是一旦我停止脚本(通过Ctrl-c或在ISE中单击红色按钮) 我的配置文件消失了,它只是消失了? 其他逐行写入同一时间的文件仍然存在?

当然我检查我没有e文件删除,但即使我存储空哈希 无论什么原因,我想我看到一个空文件 - 但Config-File已经消失了?

有人知道这有什么共鸣吗? 提前谢谢,
gooly

1 个答案:

答案 0 :(得分:2)

我不太关注你想要做的事情,但是:

$hConf > $confFile

看起来不正确。你可能想要:

$hConf >> $confFile

$hConf | out-file -append $conffile

-Oisin