Powershell获取给定路径内的扩展文件

Powershell获取给定路径内的扩展文件,powershell,Powershell,这篇文章的主要思想是,给定文件夹或磁盘的路径。然后powershell将搜索此路径中的所有文件和文件夹,并列出此路径中当前存储的所有扩展文件(docx、xlsx、jpg等) 最终结果将存储在csv文件中。我想你想要这样的结果,但我可能误解了你的问题 $Folder = "C:\Temp\" Get-ChildItem $Folder | Select Extension | Where-Object{$_.Extension -ne ""} | Export-Csv -Path C:\Temp\

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


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

我想你想要这样的结果,但我可能误解了你的问题

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

我想你想要这样的东西,但我可能误解了你的问题

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

当然会有更好的方法,比如使用filter只从childs文件中获取,但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

当然会有更好的方法,比如使用filter只从childs文件中获取,但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

我在Svanzendert解决方案中做了一点修改

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

您只需在选择对象中使用-Unique参数

我在SVANZunder解决方案中做了一点修改

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

您只需在选择对象中使用-Unique参数

您尝试了什么,以及您尝试的失败原因是什么?理想情况下,您应该提供您尝试过的内容的详细信息,并包括关于失败原因的具体信息,以及错误消息和/或错误输出。不是代码编写服务;最好的问题是那些提供有用信息的问题,这样那些回答问题的人可以引导你设计出自己的正确答案。看到一个好问题。嗨,欢迎你,我们愿意帮助你,但正如杰夫所说的,不要指望我们会给你做作业,这不是怎么回事:)你尝试了什么,你尝试了什么失败了?理想情况下,您应该提供您尝试过的内容的详细信息,并包括关于失败原因的具体信息,以及错误消息和/或错误输出。不是代码编写服务;最好的问题是那些提供有用信息的问题,这样那些回答问题的人可以引导你设计出自己的正确答案。看到一个好问题。嗨,欢迎你,我们愿意帮助你,但正如杰夫提到的,不要指望我们会给你做作业,这不是怎么回事:)谢谢!这正是我想要的!但它仍然有一个小问题,如果我有2个pdf文件,它会在CSV文件中列出2个扩展名pdf和pdf?应该有类似于
Get Unique
@ABCD检查谢谢!这正是我想要的!但它仍然有一个小问题,如果我有2个pdf文件,它会在CSV文件中列出2个扩展名pdf和pdf?应该有类似于
Get Unique
@ABCD check噢谢谢。现在它不再重复相同的扩展!哦,谢谢。现在它不再重复相同的扩展!