programing

Powershell의 개별 파일 형식 목록

batch 2023. 8. 29. 20:17
반응형

Powershell의 개별 파일 형식 목록

Powershell에서 폴더 및 하위 폴더의 모든 파일 형식을 나열하는 한 줄로 작성하려고 합니다.

지금까지 알고 있습니다.

Get-ChildItem D:\Audio -Recursive | Select-Object PSParentPath, Extension | Export-Csv D:\Test.csv

그러나 각 폴더에 대해 검색된 모든 확장자를 한 번만 표시하고 싶습니다.

예를 들어, D에 10개의 mp3 파일과 1개의 jpg 파일이 있다고 가정해 보겠습니다.\Audio\foo 및 5개의 flac 파일과 1개의 txt 파일을 D:\Audio\bar.출력은 다음과 같습니다.

  • foo.mp3
  • 푸우우
  • 막대 플랙
  • bar .txt

Get-Unique를 사용해야 할 것 같은데 경로 속성이 아닌 Extension 속성에서 어떻게 지정합니까?

선택 개체에 고유 항목만 추가:

Get-Childitem -Recurse | Select-Object PSParentPath,Extension -Unique

(또한 여기서는 디렉터리 이름이 PSParentPath보다 나을 수 있습니다.)

나는 Jimmeh의 완전한 솔루션, 테이크 전용 파일에 -file을 사용합니다.

Get-ChildItem "c:\temp" -Recurse -file | select directoryname, Extension -Unique

사용해 보십시오.

Get-ChildItem D:\Audio -Recurse | Group-Object psparentpath, extension | ? {(($_.Name -split ", .")[1]) -ne $Null } | ft -AutoSize @{Expression={(($_.Name.Split("\"))[$_.Name.Split("\").Length -1] -split ",")[0]};Label="Folder"}, @{Expression={($_.Name -split ", .")[1]};Label="Extension"}

폴더 + 확장에 대한 전체 경로를 표시하려면 다음을 시도하십시오.

Get-ChildItem D:\Audio -Recurse | Group-Object psparentpath, extension | ? {(($_.Name -split ", .")[1]) -ne $Null } | ft -AutoSize @{Expression={($_.Name.Replace("Microsoft.PowerShell.Core\FileSystem::","") -split ", .")[0]};Label="Folder"}, @{Expression={($_.Name -split ", .")[1]};Label="Extension"}

언급URL : https://stackoverflow.com/questions/13921537/distinct-list-of-file-types-in-powershell

반응형