Page 1 of 1

Get Input from CSV Files

Posted: Fri Sep 06, 2019 6:37 am
by venkirocs
Hi,

For some bulk activities, I will get the input data through a CSV. I used a Button, when the button is clicked the OpenFileDialog will pop-up and capture the filename. Next I use the Import-Csv command to fetch the data from that file. Then will use the Foreach loop to process each object in the file.

Currently I have to hardcode the header of the csv file for the powershell commands to process the task.
e.g if the filename is rename.csv and the header consists of "Oldname" and "newname" as columns, i would code as below.

$data = Import-Csv -path C:\temp\rename.csv
foreach($pc in $data)
{
Rename-Computer -ComputerName $pc.Oldname -NewName $pc.newname -DomainCredential $cred
}

Because of this I have to insists the tool users to maintain the csv file and its headers. So for all the tools I create I would have to insists the users

is there a way to dynamically obtain the header of the csv, so the users can give any column header

Re: Get Input from CSV Files

Posted: Wed Sep 11, 2019 7:23 pm
by owinsloe
$data[0].psobject.properties.name will give you the ordered col headers

Re: Get Input from CSV Files

Posted: Wed Sep 11, 2019 8:45 pm
by jvierra
To rename the columns in a CSV with columns:

import-csv test.csv -header oldname,newname | select * -skip 1

Re: Get Input from CSV Files

Posted: Wed Sep 18, 2019 8:16 am
by venkirocs
Thank you all.