使用PowerShell读取NAVISION.CONFIG文件
我有一个来自NAVISION实例的配置文件 文件格式如下所示:使用PowerShell读取NAVISION.CONFIG文件,powershell,hashtable,config-files,Powershell,Hashtable,Config Files,我有一个来自NAVISION实例的配置文件 文件格式如下所示: <?xml version="1.0" encoding="UTF-8"?> <appSettings> <add key="NetType" value="Default"></add> <add key="DatabaseServer" value="SQLSERVER"></a
<?xml version="1.0" encoding="UTF-8"?>
<appSettings>
<add key="NetType" value="Default"></add>
<add key="DatabaseServer" value="SQLSERVER"></add>
<add key="DatabaseInstance" value="MSSQL"></add>
......
</appSettings>
我在Powershell中得到的最终结果是:
key value
--- -----
NetType Default
DatabaseServer SQLSERVER
DatabaseInstance MSSQL
... .....
但是,如果我尝试使用$appsettings.DatabaseServer(或$appsettings.DatabaseServer)获取数据库服务器,它将不返回任何内容
这是有效的
ForEach ($keypair in $appsettings) {
echo $($keypair.Key + " - " + $keypair.Value);
}
但是因为我只需要5个值,所以我不想创建一个包含5个if的ForEach循环。。一定有更好/更快的方法。提前谢谢 也许吧
PS>($configfile.appSettings.add | ?{$_.key -eq "databaseserver"}).value
SQLSERVER
如果您想要一个哈希表:
[xml]$configfile = Get-Content "CustomSettings.config"
$appsettings = @{}
$configfile.appSettings.add.GetEnumerator() |
foreach {$appsettings[$_.key] = $_.value}
我认为这是最节省内存的方法,所以我将使用这个方法。如果你真的需要使用大量的数据;我建议使用mjolinor的哈希表解决方案。谢谢你们!
[xml]$configfile = Get-Content "CustomSettings.config"
$appsettings = @{}
$configfile.appSettings.add.GetEnumerator() |
foreach {$appsettings[$_.key] = $_.value}