2011-04-18 51 views
1

我的脚本将密钥值存储在一个散列中,以便对这些密钥的行不再处理。 一个新的密钥存储在已保存每次:PowerShell:脚本结束后,我成功写入的ConfigFile已经消失了吗?

 
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中单击红色按钮) 我的配置文件不见了,它只是消失?
其他逐行写入的文件仍然存在?

当然,我检查我没有电子文件删除,但即使我将存储一个空的散列 由于什么原因,我想我看到一个空文件 - 但配置文件不见了?

有没有人知道它的共鸣? 由于提前,
gooly

回答

2

我不太以下你想要做什么,而是:

$hConf > $confFile 

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

$hConf >> $confFile 

$hConf | out-file -append $conffile 

-Oisin

相关问题