我有两个powershell cmdlet用于生成流程报告和服务报告。
例如:Get-process和Get-services
我知道 export-csv c:\ test.csv 会将结果导出到Excel工作表。
但是我需要将第一个cmdlet的结果导出到第一个工作表,将第二个cmdlet导出到同一个csv文件的第二个工作表。
我该怎么做?
答案 0 :(得分: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 鲍尔泰克