将powershell的输出保存在CSV文件中

时间:2018-01-28 16:45:56

标签: windows powershell csv

我有一个powershell脚本,我可以在其中获取有关我的操作系统的信息(Windows版本,构建...)。但是所有这些信息都显示在powershell控制台中,我希望它们可以导出为CSV或XML文件。

脚本是:

Get-CimInstance Win32_OperatingSystem |
    Select-Object  Caption, CSDVersion, ServicePackMajorVersion, BuildNumber |
    FL

2 个答案:

答案 0 :(得分:3)

使用Export-Csv cmdlet:

Get-CimInstance Win32_OperatingSystem | Select-Object Caption, CSDVersion, ServicePackMajorVersion, BuildNumber | Export-Csv -NoTypeInformation -Path .\OS_Info.csv

结果(OS_Info.csv):

"Caption","CSDVersion","ServicePackMajorVersion","BuildNumber"
"Microsoft Windows Server 2012 R2 Datacenter",,"0","9600"
  

谢谢你的工作,该文件是在文件夹System32

中生成的

正如Rohin Sidharth所提到的,路径的.\前缀将在当前目录中创建文件(PowerShell中为$PWD)。您可能以管理员身份运行PowerShell:在这种情况下,默认目录为%WinDir%\System32。只需使用完整路径或GetFolderPath .Net方法来获取常见的文件夹路径,例如桌面:

... | Export-Csv -NoTypeInformation -Path 'C:\OS_Info.csv'
... | Export-Csv -NoTypeInformation -Path (Join-Path -Path [System.Environment]::GetFolderPath('Desktop') -ChildPath 'OS_Info.csv')
  

您还可以告诉我如何在同一个文件中导出多个结果吗?对于   例如,我有一个脚本,我可以在其中知道所有更新   安装:

     

Get-Hotfix | Select HotfixID,Description,InstalledOn | Sort InstalledOnfunction

     

我希望结果保存在同一个CSV文件中

您可以使用Select-Object的calculated properties

来完成此操作
# Get OS info
$OsInfo = Get-CimInstance -ClassName Win32_OperatingSystem

Get-Hotfix | # Get HotFixes
Sort-Object -Property InstalledOnfunction | # Sort them
Select-Object -Property @( # Select required fields

    # Add Caption property from $OsInfo variable
    @{
        Name = 'Caption'
        Expression = {$OsInfo.Caption}
    }

    # Add CSDVersion property from $OsInfo variable
    @{
        Name = 'CSDVersion'
        Expression = {$OsInfo.CSDVersion}
    }

    # Add ServicePackMajorVersion property from $OsInfo variable
    @{
        Name = 'ServicePackMajorVersion'
        Expression = {$OsInfo.ServicePackMajorVersion}
    }

    # Add BuildNumber property from $OsInfo variable
    @{
        Name = 'BuildNumber'
        Expression = {$OsInfo.BuildNumber}
    }

    # Add other properties from original HotFix object
    'HotfixID'
    'Description'
    'InstalledOn'

) | Export-Csv -NoTypeInformation -Path 'C:\OS_Info.csv'

您也可以尝试join objects使用自定义功能。

答案 1 :(得分:0)

快速提示:确保您没有管道到格式列表(FL),然后管道导出到csv,或者您将打开CSV文件,您的数据将如下所示。

ClassId2e4f51ef21dd47e99d3c952918aff9cd pageHeaderEntry pageFooterEntry 
autosizeInfo    shapeInfo   groupingEntry
033ecb2bc07a4d43b5ef94ed5a35d280                
Microsoft.PowerShell.Commands.Internal.Format.ListViewHeaderInfo    
9e210fe47d09416682b841769c78b8a3                    
27c87ef9bbda4f709f6b4002fa4af63c                    
4ec4f0187cb04f4cb6973460dfe252df                    
cf522b78d86c486691226b40aa69e95c