Как добавить заголовки в CSV-файл - PullRequest
0 голосов
/ 08 декабря 2018

Я создаю сценарий, чтобы получить версию файла DLL и экспортировать вывод в файл CSV, но я хочу дать определенные заголовки для файла CSV.Как я должен это делать ?Мне также нужно добавить новый системный столбец даты и времени в CSV-файл.

$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 
               }


           } 

1 Ответ

0 голосов
/ 08 декабря 2018

Вы можете сделать это с одним вкладышем.Вы можете исключить элементы с параметром -Exclude и рассчитанными свойствами PowerShell для добавления новых столбцов.Подробнее о рассчитанных свойствах здесь .

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'}
...