PowerShell/Docs/list-anagrams.md
2022-11-17 20:02:26 +01:00

3.0 KiB

The list-anagrams.ps1 PowerShell Script

This PowerShell script lists all anagrams of the given word.

Parameters

list-anagrams.ps1 [[-Word] <String>] [[-Columns] <Int32>] [<CommonParameters>]

-Word <String>
    Specifies the word to use
    
    Required?                    false
    Position?                    1
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false

-Columns <Int32>
    Specifies the number of columns
    
    Required?                    false
    Position?                    2
    Default value                8
    Accept pipeline input?       false
    Accept wildcard characters?  false

[<CommonParameters>]
    This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, 
    WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

Example

PS> ./list-anagrams Baby

Notes

Author: Markus Fleschutz | License: CC0

https://github.com/fleschutz/PowerShell

Source Code

<# .SYNOPSIS Lists all anagrams of the given word .DESCRIPTION This PowerShell script lists all anagrams of the given word. .PARAMETER Word Specifies the word to use .PARAMETER Columns Specifies the number of columns .EXAMPLE PS> ./list-anagrams Baby .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #>

param([string]$Word = "", [int]$Columns = 8)

function GetPermutations { [cmdletbinding()] Param( [parameter(ValueFromPipeline=$True)] [string]$String = 'the' ) Begin { Function NewAnagram { Param([int]$NewSize)
if ($NewSize -eq 1) { return } for ($i=0;$i -lt $NewSize; $i++) { NewAnagram -NewSize ($NewSize - 1) if ($NewSize -eq 2) { New-Object PSObject -Property @{ Permutation = $stringBuilder.ToString()
} } MoveLeft -NewSize $NewSize } } Function MoveLeft { Param([int]$NewSize)
$z = 0 $position = ($Size - $NewSize) [char]$temp = $stringBuilder[$position]
for ($z=($position+1);$z -lt $Size; $z++) { $stringBuilder[($z-1)] = $stringBuilder[$z]
} $stringBuilder[($z-1)] = $temp } } Process { $size = $String.length $stringBuilder = New-Object System.Text.StringBuilder -ArgumentList $String NewAnagram -NewSize $Size } End {} }

try { if ($Word -eq "" ) { $Word = read-host "Enter word" $Columns = read-host "Enter number of columns" } GetPermutations -String $Word | Format-Wide -Column $Columns exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 }

Generated by convert-ps2md.ps1 using the comment-based help of list-anagrams.ps1