Update list-scripts.ps1

This commit is contained in:
Markus Fleschutz 2023-09-28 13:50:01 +02:00
parent 909e360eb9
commit 84b3e0db22
2 changed files with 26 additions and 14 deletions

View File

@ -1,37 +1,48 @@
<# <#
.SYNOPSIS .SYNOPSIS
Lists all PowerShell scripts Lists the PowerShell scripts
.DESCRIPTION .DESCRIPTION
This PowerShell script lists all PowerShell scripts in the repository (sorted alphabetically). This PowerShell script lists the Mega collection of PowerShell scripts (sorted alphabetically and optionally by category).
.PARAM category
Specifies the desired category: audio, desktop, filesystem, fun, git, misc, or: * (default)
.EXAMPLE .EXAMPLE
PS> ./list-scripts.ps1 PS> ./list-scripts.ps1
No Script Category Description
-- ------ -------- -----------
1 add-firewall-rules.ps1 misc Adds firewall rules for executables (needs admin rights)
...
.LINK .LINK
https://github.com/fleschutz/PowerShell https://github.com/fleschutz/PowerShell
.NOTES .NOTES
Author: Markus Fleschutz | License: CC0 Author: Markus Fleschutz | License: CC0
#> #>
function ListScripts { param([string]$FilePath) param([string]$category = "*")
Write-Progress "Reading $FilePath..."
$table = Import-CSV "$FilePath" function ListScripts([string]$category) {
Write-Progress "Loading data from ../Data/script.csv..."
$table = Import-CSV "$PSScriptRoot/../Data/scripts.csv"
[int]$No = 1 [int]$No = 1
foreach($row in $table) { foreach($row in $table) {
if ($row.CATEGORY -like $category) {
New-Object PSObject -Property @{ New-Object PSObject -Property @{
'No' = $No++ 'No' = $No++
'Script' = $row.SCRIPT 'Script' = $row.SCRIPT
'Category' = $row.CATEGORY
'Description' = $row.DESCRIPTION 'Description' = $row.DESCRIPTION
} }
} }
$global:NumScripts = $Table.Count }
Write-Progress -completed "." Write-Progress -completed " "
} }
try { try {
ListScripts "$PSScriptRoot/../Data/scripts.csv" | Format-Table -property No,Script,Description ListScripts $category | Format-Table -property No,Script,Category,Description
# $files = Get-ChildItem -path "./*.ps1" -attributes !Directory # $files = Get-ChildItem -path "./*.ps1" -attributes !Directory
# foreach ($file in $files) { # foreach ($file in $files) {
# $help = Get-Help $file -full # $help = Get-Help $file -full
# Write-Output "$($file.Name),$($help.Synopsis)," # Write-Output "$($file.Name), ,`"$($help.Synopsis)`","
# } # }
exit 0 # success exit 0 # success
} catch { } catch {

View File

@ -59,3 +59,4 @@ while ($true) {
Start-Sleep -milliseconds 30 Start-Sleep -milliseconds 30
} }
exit 0 # success exit 0 # success