varios txt situado renombrar puede porque por parte nombres nombre masivamente lotes listar extension existe elemento crear cambiar archivos archivo powershell

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í)