The *list-folder.ps1* Script =========================== This PowerShell script lists the content of a directory (alphabetically formatted in columns). Parameters ---------- ```powershell /home/markus/Repos/PowerShell/scripts/list-folder.ps1 [[-searchPattern] ] [] -searchPattern Specifies the search pattern ("*" by default which means anything) Required? false Position? 1 Default value * Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` Example ------- ```powershell PS> ./list-folder.ps1 C:\* ``` Notes ----- Author: Markus Fleschutz | License: CC0 Related Links ------------- https://github.com/fleschutz/PowerShell Script Content -------------- ```powershell <# .SYNOPSIS Lists a folder .DESCRIPTION This PowerShell script lists the content of a directory (alphabetically formatted in columns). .PARAMETER SearchPattern Specifies the search pattern ("*" by default which means anything) .EXAMPLE PS> ./list-folder.ps1 C:\* .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$searchPattern = "*") function GetFileIcon([string]$suffix) { switch ($suffix) { ".csv" {return "📊"} ".epub" {return "📓"} ".exe" {return "⚙️"} ".gif" {return "📸"} ".iso" {return "📀"} ".jpg" {return "📸"} ".mp3" {return "🎵"} ".mkv" {return "🎬"} ".zip" {return "🎁"} default {return "📄"} } } function ListFolder([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 exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *(generated by convert-ps2md.ps1 as of 11/20/2024 11:51:55)*