如何将标题添加到csv文件

时间:2018-12-08 17:00:19

标签: powershell powershell-v3.0

我正在创建一个脚本来获取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 :(得分:2)

您可以使用一根衬纸来做。您可以排除带有-Exclude参数的项和PowerShell的计算属性以添加新列。有关计算的属性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'}