Get Input from CSV Files

Ask your 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
Meble kuchenne na zamówienie - na wymiar - Wrocław
Joined: Mon Feb 01, 2016 3:08 am

Get Input from CSV Files

Post 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

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

Re: Get Input from CSV Files

Post by owinsloe »

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

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

Re: Get Input from CSV Files

Post by jvierra »

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 »

Thank you all.

Locked