From 6abf457fb360c6719522c11afd6ee5ceb87f0081 Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Wed, 26 Apr 2023 16:40:17 +0200 Subject: [PATCH] Update list-folder.ps1 --- Scripts/list-folder.ps1 | 45 +++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/Scripts/list-folder.ps1 b/Scripts/list-folder.ps1 index d5d07a60..6e166be1 100755 --- a/Scripts/list-folder.ps1 +++ b/Scripts/list-folder.ps1 @@ -1,36 +1,47 @@ <# .SYNOPSIS - Lists the folder content + Lists a folder .DESCRIPTION - This PowerShell script lists the directory content formatted in columns. + This PowerShell script lists the content of a directory (alphabetically formatted in columns). .PARAMETER SearchPattern - Specifies the search pattern, "*" by default (means anything) + Specifies the search pattern ("*" by default which means anything) .EXAMPLE - PS> ./list-folder C:\ + PS> ./list-folder C:\* .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> -param([string]$SearchPattern = "*") +param([string]$searchPattern = "*") -function ListFolder { param([string]$SearchPattern) - $Items = get-childItem -path "$SearchPattern" - foreach ($Item in $Items) { - $Name = $Item.Name - if ($Name[0] -eq '.') { continue } # hidden file/dir - if ($Item.Mode -like "d*") { $Icon = "📂" - } elseif ($Name -like "*.iso") { $Icon = "📀" - } elseif ($Name -like "*.mp3") { $Icon = "🎵" - } elseif ($Name -like "*.epub") { $Icon = "📓" - } else { $Icon = "📄" } - new-object PSObject -Property @{ Name = "$Icon$Name" } +function GetFileIcon { param([string]$suffix) + switch ($suffix) { + ".csv" { return "📊" } + ".epub" { return "📓" } + ".gif" { return "🎨" } + ".iso" { return "📀" } + ".jpg" { return "🎨" } + ".mp3" { return "🎵" } + ".mp4" { return "🎬" } + ".mkv" { return "🎬" } + ".ps1" { return "📑" } + default { return "📄" } + } +} + +function ListFolder { param([string]$searchPattern) + $items = Get-ChildItem -path "$searchPattern" + foreach ($item in $items) { + $name = $item.Name + if ($name[0] -eq '.') { continue } # hidden file/dir + if ($item.Mode -like "d*") { $icon = "📂" } else { $icon = GetFileIcon $item.Extension } + New-Object PSObject -property @{ Name = "$icon$name" } } } try { - ListFolder $SearchPattern | format-wide -autoSize + ListFolder $searchPattern | Format-Wide -autoSize exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"