Q. Why can't I pipe a formatted table to a CSV file?

You can, but the CSV file will contain the output of the Format-Table cmdlet, which probably isn't what you want. Format cmdlets produce objects that tell the shell how to construct an on-screen display.

Don Jones

August 30, 2010

1 Min Read
narrow bridge connecting two large storage tanks

Q. Why can't I pipe a formatted table to a CSV file?

A. You can, but the CSV file will contain the output of the Format-Table cmdlet, which probably isn't what you want. Format cmdlets produce objects that tell the shell how to construct an on-screen display, which is why this produces such ugly output, as this example shows:

Get-Process | Format-Table | Export-CSV procs.csv

Generally, a Format cmdlet should be the LAST thing on your command line. The only exceptions are Out-File, Out-Host, and Out-Printer, which understand the output of a Format cmdlet. These cmdlets work fine, as this code shows:

Get-Process | Format-Table | Out-File procs.txt

If you want processes in a CSV file, just skip the table:

Get-Process | Export-CSV procs.csv

Do you have a Windows PowerShell question? Find more PowerShell FAQs, articles, and other resources at windowsitpro.com/go/DonJonesPowerShell.

 

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like