Load or Save CSV with Powershell

Save CSV to a file

Save an object as CSV with "Export-Csv"

dir | Export-Csv dir.csv -NoTypeInformation

You may want to restrict which properties you save, e.g...

dir | select Name, Length | Export-Csv dir.csv -NoTypeInformation

Can also convert any object to csv before doing something with it, such as writing to a file...

dir | select Name, Length | convertto-csv -notypeinformation | out-file -append dirinfo.csv -encoding utf8;

Append to a file - skip header!

If you're appending to a file you'll also want to skip the header row (apart from on the first write...)

dir | select Name, Length | convertto-csv -notypeinformation | Select-Object -Skip 1 | out-file -append dirinfo.csv -encoding utf8;

Load CSV from a file

$myDir = import-csv "dirinfo.csv";

What type do we end up with? A custom object, with a NoteProperty for each column that was encountered...

> $mydir | get-member

	 TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
Length      NoteProperty string Length=12
Name        NoteProperty string Name=fred.md

Group CSV

import-csv "dirinfo.csv" | group -property Name | sort -desc count