我有几个连接string是XML文件。 我需要使用以下输出生成一个使用所有这些连接string的CSV报告:
下面是我的PS脚本工作正常的1个文件,并给我所需的输出。 我一直在玩,使其适用于所有的文件
function extractValues ($string, $values){ return ($values | %{ $string -match "$_=([^;]+)" | Out-Null; $matches} | %{$_[1]}) } [string]$Value1 = '/connectionStrings/add[@name="Value1"]/@connectionString' [string]$Value2 = '/connectionStrings/add[@name="Value2"]/@connectionString' [string]$Value3 = '/connectionStrings/add[@name="Value3"]/@connectionString' $files = Get-Childitem –Path C:\inetpub\wwwroot\*\ConfigSections\connectionStrings.config.New.config foreach ($file in $files) { [xml]$xml = Get-Content $file $connectionString = ($xml | Select-Xml -XPath $Value1).ToString() ($serverName, $dbName, $user) = extractValues $connectionString @("Data Source", "Initial Catalog", "User ID") $connectionString = ($xml | Select-Xml -XPath $Value2).ToString() ($EserverName, $EdbName, $Euser) = extractValues $connectionString @("Data Source", "Initial Catalog", "User ID") $connectionString = ($xml | Select-Xml -XPath $Value3).ToString() ($SCSserverName, $SCSdbName, $SCSuser) = extractValues $connectionString @("Data Source", "Initial Catalog", "User ID") $table=@" Initial Catalog = $Value1, Value1, connectionstring=Data Source=$serverName, Initial Catalog=$dbName, User ID=$user Value2, connectionstring=Data Source=$EserverName, Initial Catalog=$EdbName, User ID=$Euser Value3, connectionstring=Data Source=$SCSserverName, Initial Catalog=$SCSdbName, User ID=$SCSuser "@ #export to a csv file $table | Set-Content $home\desktop\test.csv }
这仅输出1个连接string的csv。 不知道,我错过了什么。
谢谢
感谢@ sum1sadmin,当我声明我的表时,我失踪了。 所以,应该是$ table + =而不是$ table =,因为这个$表在foreach循环中。