将Powershell命令导出到Excel
我有以下命令
Get-WmiObject win32_OperatingSystem |%{"Total Physical Memory: {0}KB`nFree Physical Memory : {1}KB`nTotal Virtual Memory : {2}KB`nFree Virtual Memory : {3}KB" -f $_.totalvisiblememorysize, $_.freephysicalmemory, $_.totalvirtualmemorysize, $_.freevirtualmemory}
我想导出上面的输出到一个excel文件。 我有:
Get-WmiObject win32_OperatingSystem |%{"Total Physical Memory: {0}KB`nFree Physical Memory : {1}KB`nTotal Virtual Memory : {2}KB`nFree Virtual Memory : {3}KB" -f $_.totalvisiblememorysize, $_.freephysicalmemory, $_.totalvirtualmemorysize, $_.freevirtualmemory} | Select-Object VisibleMem, FreeMem, VirtualMem,FreeVirtualMem | Export-Csv -Path "C:\Test.csv" -Encoding ascii -NoTypeInformation -UseCulture
这不会输出任何除了列的标题。我正在寻找每列中的输出。 任何帮助?
- 当您在
Foreach-Object
循环中创buildstring时,您将使用其属性丢弃对象,因此您不必再导出到csv。 -
Select-Object
中的属性名称不存在。 您不能组成列名称(不使用计算属性/列,请参阅下面的示例)。
试试这个输出数据:
Get-WmiObject win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory, TotalVirtualMemorySize, FreeVirtualMemory | Export-Csv -Path "C:\Test.csv" -Encoding ascii -NoTypeInformation -UseCulture
如果你需要不同的列名:
Get-WmiObject win32_OperatingSystem | Select-Object @{n="VisibleMem";e={$_.TotalVisibleMemorySize}}, @{n="FreeMem";e={$_.FreePhysicalMemory}}, @{n="VirtualMem";e={$_.TotalVirtualMemorySize}}, @{n="FreeVirtualMem";e={$_.FreeVirtualMemory}} | Export-Csv -Path "C:\Test.csv" -Encoding ascii -NoTypeInformation -UseCulture
如果您需要将文本写入屏幕(供用户查看),同时还要保存它们,则需要使用Write-Host
并记住将对象传递到pipe道中的下一个cmdlet:
Get-WmiObject win32_OperatingSystem | ForEach-Object { #Write to screen Write-Host ("Total Physical Memory: {0}KB`nFree Physical Memory : {1}KB`nTotal Virtual Memory : {2}KB`nFree Virtual Memory : {3}KB" -f $_.totalvisiblememorysize, $_.freephysicalmemory, $_.totalvirtualmemorysize, $_.freevirtualmemory); #Throw the original object to the next cmdlet in the pipeline $_ } | Select-Object TotalVisibleMemorySize, FreePhysicalMemory, TotalVirtualMemorySize, FreeVirtualMemory | Export-Csv -Path "C:\Test.csv" -Encoding ascii -NoTypeInformation -UseCulture