使用PowerShell读取NAVISION .CONFIG文件

时间:2014-03-06 13:03:16

标签: powershell hashtable config-files

我有来自NAVISION实例的配置文件。

文件格式如下:

    <?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>

我目前使用此代码:

[xml]$configfile = Get-Content "CustomSettings.config"
$appsettings = $configfile.appSettings.add.GetEnumerator()
Echo $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循环。必须有更好/更快的方法。提前谢谢!

2 个答案:

答案 0 :(得分:0)

也许

PS>($configfile.appSettings.add | ?{$_.key -eq "databaseserver"}).value        
SQLSERVER                                       

答案 1 :(得分:0)

如果您想要哈希表:

[xml]$configfile = Get-Content "CustomSettings.config"
$appsettings = @{}
$configfile.appSettings.add.GetEnumerator() |
 foreach {$appsettings[$_.key] = $_.value}