Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
When we export any variables without properties using export-csv, we don't get the actual data in the csv file. we only get Length of each values in the variable as shown below.
I create a variable $array
$array = "tom","Dick","Harry"
Then try to export it to csv file
$Array |export-csv Array,csv -notypeinformation
I get below output
Length |
3 |
4 |
5 |
To fix this, I will have to create a property using custom labels. But before that I would like to explain why it didn't export the actual values.
$array contains only one property i.e. Length. You can check the same by typing $array|gm -MemberType Properties. You will get below result.
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Length Property int Length {get;}
As the values "tom","Dick","Harry" don't have any property name. they will not be exported to .csv file. Use below cmdlet to create a property.
$ArrayWithProp = $array |select @{n="Name";e={$_}}
Now type $ArrayWithProp |gm -MemberType Properties to check the properties. You will get the property "Name"
TypeName: Selected.System.String
Name MemberType Definition
---- ---------- ----------
Name NoteProperty System.String Name=tom
now export the variable to csv using below cmdlet.
$ArrayWithProp |export-csv Array,csv -notypeinformation
You will get below output!
Name |
tom |
Dick |
Harry |