Powershell получает файлы расширения по заданному пути - PullRequest
0 голосов
/ 28 февраля 2019

Основная идея этого поста заключается в том, что, учитывая путь к папке или диску.Затем powershell будет искать все файлы и папки внутри этого пути и перечислять все файлы расширений, которые в данный момент хранятся в этом пути (docx, xlsx, jpg, ...)

Окончательные результаты будут сохранены в файле csv.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Конечно, будут и другие способы, такие как использование фильтра для получения дочерних файлов onlz, но вы можете сделать что-то вроде следующего:

#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
0 голосов
/ 01 марта 2019

Я сделал небольшое исправление в решении svanzundert

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

Вам просто нужно использовать параметр -Unique в Select-Object

0 голосов
/ 28 февраля 2019

Я думаю, вы хотите что-то подобное, но, может быть, я неправильно понял ваш вопрос.

$Folder = "C:\Temp\"
Get-ChildItem $Folder | Select Extension | Where-Object{$_.Extension -ne ""} | Export-Csv -Path C:\Temp\YourCSV.csv -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...