txt - Distinta lista de tipos de archivos en Powershell
renombrar archivos masivamente powershell (3)
Completo la solución de Jimmeh, use -archivo para tomar solo archivo
Get-ChildItem "c:/temp" -Recurse -file | select directoryname, Extension -Unique
Estoy tratando de escribir una sola línea en Powershell que enumera todos los tipos de archivos en una carpeta (y sus subcarpetas).
Tengo esto hasta ahora:
Get-ChildItem D:/Audio -Recursive | Select-Object PSParentPath, Extension | Export-Csv D:/Test.csv
Sin embargo, me gustaría hacerlo mejor y mostrar, para cada carpeta, cada extensión encontrada solo una vez.
Por ejemplo, digamos que tengo diez archivos mp3 y 1 archivo jpg en D: / Audio / foo y 5 archivos flac y 1 archivo txt en D: / Audio / bar. Me gustaría que la salida fuera:
- foo .mp3
- foo .jpeg
- bar .flac
- barra .txt
Supongo que debería usar Get-Unique, pero ¿cómo lo especifico en la propiedad de Extensión y NO en la propiedad de Ruta de acceso?
Prueba esto:
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"}
Para mostrar la ruta completa a la carpeta + extensión, intente lo siguiente.
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"}
Solo agregue -Unique to Select-Object:
Get-Childitem -Recurse | Select-Object PSParentPath,Extension -Unique
(Además, DirectoryName podría ser mejor que PSParentPath aquí)