Public/Get-LoremIpsum.ps1
|
function Get-LoremIpsum { <# .SYNOPSIS Generates Lorem Ipsum text. .DESCRIPTION Returns random Lorem Ipsum Words as a sentence. Use -Seed for deterministic output. Use -AsArray to return Words instead of a string. .PARAMETER Count Number of Words to generate. .PARAMETER Seed Seed value for deterministic (same outcome) output. .PARAMETER AsArray Return Words as an array of string. .EXAMPLE Get-LoremIpsum -Count 10 lorem ipsum dolor sit amet culpa quis elit nostrud do. .OUTPUTS System.String System.Array #> [CmdletBinding()] param ( [Parameter(Mandatory)] [ValidateRange(0, [int]::MaxValue)] [int]$Count, [int]$Seed, [switch]$AsArray ) $Words = @( 'lorem','ipsum','dolor','sit','amet','culpa','quis','elit','nostrud','do','et','ex', 'enim','pariatur','duis','sunt','deserunt','ea','commodo','occaecat','mollit', 'excepteur','proident','fugiat','qui','adipiscing','magna','voluptate','cillum', 'nulla','dolore','laboris','velit','cupidatat','non','nisi','sint','ullamco', 'tempor','veniam','irure','esse','anim','in','aute','eu','ut','consectetur', 'labore','laborum','aliqua','exercitation','sed','ad','incididunt','minim', 'reprehenderit','aliquip','est','officia','consequat','id','eiusmod' ) $Rng = if ($PSBoundParameters.ContainsKey('Seed')) { [System.Random]::new($Seed) } $Result = for ($i = 0; $i -lt $Count; $i++) { if ($Rng) { $Words[$Rng.Next(0, $Words.Length)] } else { $RandomIndex = Get-Random -Minimum 0 -Maximum $Words.Length $Words[$RandomIndex] } } if ($AsArray) { return $Result } ($Result -join ' ') + '.' } |