Get Input from CSV Files

Ask your Windows PowerShell-related questions, including questions on cmdlet development!
Forum rules
Do not post any licensing information in this forum.

Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
Locked
User avatar
venkirocs
Posts: 3
Joined: Mon Feb 01, 2016 3:08 am

Get Input from CSV Files

Post by venkirocs » Fri Sep 06, 2019 6:37 am

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

User avatar
owinsloe
Posts: 83
Joined: Tue Jul 10, 2012 10:37 am

Re: Get Input from CSV Files

Post by owinsloe » Wed Sep 11, 2019 7:23 pm

$data[0].psobject.properties.name will give you the ordered col headers

jvierra
Posts: 14018
Joined: Tue May 22, 2007 9:57 am
Contact:

Re: Get Input from CSV Files

Post by jvierra » Wed Sep 11, 2019 8:45 pm

To rename the columns in a CSV with columns:

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

User avatar
venkirocs
Posts: 3
Joined: Mon Feb 01, 2016 3:08 am

Re: Get Input from CSV Files

Post by venkirocs » Wed Sep 18, 2019 8:16 am

Thank you all.

Locked