Powershell 从以键为列标题的键值对创建 table
Powershell create table from key value pairs with key as column heading
我在 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:
我想创建一个 table,将键作为列标题,甚至能够从 table 数据中删除键。
+------------------------------+-------------+-------------+-----------------+-----------------------+
| SSAS | Provider | Data Source | Security | Catalog |
+------------------------------+-------------+-------------+-----------------+-----------------------+
| EnvironmentalAnalysisService | SQLNCLI11.1 | LAP123 | Integrated SSPI | EnvironmentalDataMart |
| PerformanceAnalysisService | SQLNCLI11.1 | LAP123 | Integrated SSPI | PerformanceDataMart |
+------------------------------+-------------+-------------+-----------------+-----------------------+
但是有没有一种方法可以识别 key/column 名称并将其动态删除?
最终结果将被SQL使用。因此,要么将数据作为单独的列返回,要么以逗号分隔。
ConverTo-Csv
应该能够做到这一点,只需将 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
,或者可以将 ConvertTo-Csv
的输出通过管道传输到 Out-File
希望对您有所帮助
我在 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:
我想创建一个 table,将键作为列标题,甚至能够从 table 数据中删除键。
+------------------------------+-------------+-------------+-----------------+-----------------------+
| SSAS | Provider | Data Source | Security | Catalog |
+------------------------------+-------------+-------------+-----------------+-----------------------+
| EnvironmentalAnalysisService | SQLNCLI11.1 | LAP123 | Integrated SSPI | EnvironmentalDataMart |
| PerformanceAnalysisService | SQLNCLI11.1 | LAP123 | Integrated SSPI | PerformanceDataMart |
+------------------------------+-------------+-------------+-----------------+-----------------------+
但是有没有一种方法可以识别 key/column 名称并将其动态删除?
最终结果将被SQL使用。因此,要么将数据作为单独的列返回,要么以逗号分隔。
ConverTo-Csv
应该能够做到这一点,只需将 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
,或者可以将 ConvertTo-Csv
的输出通过管道传输到 Out-File
希望对您有所帮助