Powershell在给定路径中获取扩展文件

时间:2019-02-28 14:57:16

标签: powershell

这篇文章的主要思想是给定文件夹或磁盘的路径。然后,PowerShell将搜索该路径内的所有文件和文件夹,并列出当前存储在该路径中的所有扩展文件(docx,xl​​sx,jpg等)

最终结果将存储在csv文件中。

3 个答案:

答案 0 :(得分:1)

我认为您想要这样的东西,但是可能是我误解了您的问题。

$Folder = "C:\Temp\"
Get-ChildItem $Folder | Select Extension | Where-Object{$_.Extension -ne ""} | Export-Csv -Path C:\Temp\YourCSV.csv -NoTypeInformation

答案 1 :(得分:1)

我在svanzundert解决方案中做了一些修正

$Folder = "C:\Temp\"
Get-ChildItem $Folder | Select Extension -Unique | Where-Object{$_.Extension -ne ""} | Export-Csv -Path C:\Temp\YourCSV.csv -NoTypeInformation

您只需要在Select-Object中使用-Unique参数

答案 2 :(得分:0)

肯定会有更好的方法,例如使用过滤器从子文件onlz中获取,但是zou可以执行以下操作:

#will load directory content
$files = Get-ChildItem "C:\Users\fooo\Documents\" 

#empty array for extensions preparation
$extensions = New-Object System.Collections.ArrayList($null)

#iterate over items= files and directories
for ($i=0; $i -lt $files.Count; $i++) {
    #print all (once by one of course)
    #Write-Host $files[$i].FullName
    #print extension only
    #Write-Host $files[$i].Extension

    #store extensions by unique, if its a file
    if( ($files[$i].GetType().Name -eq "FileInfo" ) -and !$extensions.Contains($files[$i].Extension) ){
        $extensions.Add($files[$i].Extension)
    }
}

Write-Host $extensions

我的输出:

.gitattributes .gitignore .mailmap .yml .cmd .fsx .sh .md .dependencies .lock .sln .DotSettings