Friday, October 11, 2013

Dealing With CSV Files

Let's take a look at some csv  directly from Microsoft:

Pilar Ackerman,Research,Manager
Jonathan Haas,Finance,Finance Specialist
Ken Myer,Finance,Accountant

Pop that into notepad and then open it up in Powershell using the below code:

$csvFile = "C:\Users\Administrator\Desktop\minor.csv"
Import-CSV $csvFile |
    write-host $_.Title

Should give me Manager, Finance Specialist and Accountant. Wrong!

As it turns out, | Doesn't work in V3 of Powershell and removing it produces:

Name                                    Department                              Title
----                                    ----------                              -----
Pilar Ackerman                          Research                                Manager
Jonathan Haas                           Finance                                 Finance Specialist
Ken Myer                                Finance                                 Accountant

The following code works to create what used to work in Powershell V2.

$csvFile = "C:\Users\Administrator\Desktop\minor.csv"
$file_data = @(Import-CSV -Path $csvFile)
foreach($obj in $file_data)
     $loc = $obj.Name
     Write-host $loc

This will produce:
Pilar Ackerman
Jonathan Haas
Ken Myer