Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell使用键作为列标题从键值对创建表_Powershell_String Formatting - Fatal编程技术网

Powershell使用键作为列标题从键值对创建表

Powershell使用键作为列标题从键值对创建表,powershell,string-formatting,Powershell,String Formatting,我在powershell脚本中有多行数据,如下所示: SSAS=PerformanceAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Security=SSPI;Initial Catalog=PerformanceDataMart: SSAS=EnvironmentalAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Se

我在powershell脚本中有多行数据,如下所示:

SSAS=PerformanceAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Security=SSPI;Initial Catalog=PerformanceDataMart:
SSAS=EnvironmentalAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Security=SSPI;Initial Catalog=EnvironmentalDataMart:
我目前正在使用:

ConvertFrom-String -Delimiter ";" -PropertyNames Server, Provider, Source, Security, Catalog.
这给了我:

Server                                                  Provider            Source                   Security                              
------                                                  --------            ------                   --------                              
SSAS=EnvironmentalAnalysisService, Provider=SQLNCLI11.1 Data Source=LAP123  Integrated Security=SSPI Initial Catalog=EnvironmentalDataMart:
SSAS=PerformanceAnalysisService, Provider=SQLNCLI11.1   Data Source=DEV-EDW Integrated Security=SSPI Initial Catalog=PerformanceDataMart: 
我想创建一个表,以键作为列标题,甚至可以从表数据中去掉键

+------------------------------+-------------+-------------+-----------------+-----------------------+
|            SSAS              |  Provider   | Data Source |    Security     |    Catalog            |
+------------------------------+-------------+-------------+-----------------+-----------------------+
| EnvironmentalAnalysisService | SQLNCLI11.1 | LAP123      | Integrated SSPI | EnvironmentalDataMart |
| PerformanceAnalysisService   | SQLNCLI11.1 | LAP123      | Integrated SSPI | PerformanceDataMart   |
+------------------------------+-------------+-------------+-----------------+-----------------------+
但是,有没有一种方法可以识别键/列名并动态地将它们剥离出来


最终结果将由SQL使用。因此,以单独的列或逗号分隔的形式返回数据都是不错的选择。

convertocsv
应该能够做到这一点,只需将
ConvertFrom String
的输出通过管道传输到它

> $in = "SSAS=PerformanceAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Security=SSPI;Initial Catalog=PerformanceDataMart:","SSAS=EnvironmentalAnalysisService, Provider=SQLNCLI11.1;Data Source=LAP123;Integrated Security=SSPI;Initial Catalog=EnvironmentalDataMart:"
> $in | ConvertFrom-String -Delimiter ";" -PropertyNames Server, Provider, Source, Security, Catalog | ConvertTo-Csv -NoTypeInformation -Delimiter ';'
"Server";"Provider";"Source";"Security"
"SSAS=PerformanceAnalysisService, Provider=SQLNCLI11.1";"Data Source=LAP123";"Integrated Security=SSPI";"Initial Catalog=PerformanceDataMart:"
"SSAS=EnvironmentalAnalysisService, Provider=SQLNCLI11.1";"Data Source=LAP123";"Integrated Security=SSPI";"Initial Catalog=EnvironmentalDataMart:"
如果要将内容存储到Csv文件中,也可以将
ConverTo Csv
替换为
Export Csv
,或者可以将
ConverTo Csv
的输出通过管道传输到
Out文件中


希望对你有所帮助

谢谢。我明天就去试试。