如何将Powershell cmdlet标准输出转换为其他格式?

时间:2014-06-26 05:16:25

标签: powershell powershell-v2.0

我有一个类似PowerShell命令行的输出,

SNO     Id      ComputerName        Name        LastModifiedBy      State   Priority    Description 
---     --      ------------        ----        --------------      -----   --------    -----------
1       adF     ABCRTC              test        user453             Normal  Low         This is a test activity1
2       arF     ABCRRR              te12        user453             Normal  Low         This is a test activity2
3       afF     ABCREE              te23        user453             Normal  Low         This is a test activity3
4       cdF     ABCRVV              te45        user453             Normal  Low         This is a test activity4

我正在尝试将其转换为以下格式,但由于最后一栏spaces

中的某些Description,我没有收到
1;adF;ABCRTC;test;user453;Normal;Low;This is a test activity1
2;arF;ABCRRR;te12;user453;Normal;Low;This is a test activity2
3;afF;ABCREE;te23;user453;Normal;Low;This is a test activity3
4;cdF;ABCRVV;te45;user453;Normal;Low;This is a test activity4

我习惯偶尔在PS1上工作,帮助我。

2 个答案:

答案 0 :(得分:0)

myInstruction | ConvertTo-Csv -Delimiter ";" -NoTypeInformation

答案 1 :(得分:0)

Alexander Obersht在评论中给出了正确答案。建立起来,为了给出你想要的确切输出,你必须过滤它以便切出标题行,并删除它在将其转换为CSV时注入的任何引号。将此添加到正在运行的任何正在为您输出的命令的末尾,或将数组传递给它:

|ConvertTo-Csv -Delimiter ";" -NoTypeInformation|Out-String|%{$_.split("`n")|select -skip 1|%{$_.Replace('";"',';') -replace "(^`"|`"\s*$)"}}

这将为您提供您想要的输出。