Dhrumil Pathak
Dhrumil Pathak

Reputation: 121

How to add headers to csv file

I am creating a script to get the file version of the dlls and export the output to a csv file , but I want to give particular headers to csv file. How should I do it ? I also need to add a new system date and time column to the csv file.

$j = 'C:\Program Files (x86)\anyfilepatha\' 
$files = get-childitem $j -recurse -Include *.dll
$cvsdataFile = 'C:\Program Files\MySQL\Connector ODBC 8.0\dllsinfo.csv'


 # Add-Content -Path "C:\Program Files\MySQL\Connector ODBC 8.0\dllsinfo.csv" -Value  "Dlls" , "Version Name" , "Location"
$header = foreach ($i in $files)
           {              
               if($i.Name -like '*Eclipsys*' -or $i.Name -like '*Helios*')        
               {    
                    continue;
               }

               $verison = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($i).FileVersion

             if($verison -eq $null)
             {
                     $i.FullName | Out-File NoVersion.txt -append
             }

             else
             {                                                                                                                                                                                                                  

                Write-Host $i ----> $verison             


             "{0}`t{1}`t{2} " -f $i, [System.Diagnostics.FileVersionInfo]:: GetVersionInfo($i).FileVersion, $i.CreationTime, $i.FullName | Out-File -Append $cvsdataFile 
               }


           } 

Upvotes: 0

Views: 96

Answers (1)

Prasoon Karunan V
Prasoon Karunan V

Reputation: 3043

You could do it with a one liner. You can exclude items with -Exclude parameter and PowerShell calculated properties for adding new columns. See more about calculated properties here.

Get-ChildItem -Path $j -File -Exclude '*Eclipsys*','*Helios*' -Include *.dll |
Select-Object -Property @{E={$_.versioninfo.Fileversion};l='Version'},@{E={Get-Date -f 'dd/mm/yyyy'};l='Date'},@{E={Get-Date -f 'hh:mm:ss ttt='};L='Time'}

Upvotes: 2

Related Questions