我的脚本将键值存储在哈希中,因此不再处理具有这些键的行。 每次存储新密钥时,都会保存:
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
答案 0 :(得分:2)
我不太关注你想要做的事情,但是:
$hConf > $confFile
看起来不正确。你可能想要:
$hConf >> $confFile
或
$hConf | out-file -append $conffile
-Oisin