1

我有两个 powershell cmdlet 来生成进程报告服务报告

例如:Get-process 和 Get-services

我知道export-csv c:\test.csv会将结果导出到 Excel 表。

但是我需要将第一个 cmdlet 的结果导出到同一个 csv 文件的第一个工作表和第二个 cmdlet 到第二个工作表。

我该怎么做呢?

4

1 回答 1

3

IMO 最好的选择就是使用 excel 自动化。例如 ConvertTo-Excel.ps1:

param (
    [ValidatePattern('\.csv$')]
    [ValidateScript({
        Test-Path $_
    })]
    [string[]]$Path
)

$FullPath = $Path | ForEach-Object {
    (Resolve-Path $_).ProviderPath
}

$First, $Rest = $FullPath

$Excel = New-Object -ComObject Excel.Application

$Book = $Excel.Workbooks.Open($First)

foreach ($Item in $Rest) {
    $Next = $Excel.Workbooks.Open($Item)
    $Next.ActiveSheet.Move($Book.ActiveSheet)
}

$Excel.Visible = $true

您可以使用 .\ConvertTo-Excel.ps1 -Path .\services.csv, .\process.csv, ....csv 运行上述脚本,并将所有 csv 以相反的顺序组合在一起。

HTH 巴特克

于 2012-05-16T11:26:49.877 回答