Functions/Write-StringArray.ps1
function Write-StringArray { <# .SYNOPSIS Takes [string] or [string[]] input and writes the code that would create a string array with that information. .DESCRIPTION Takes [string] or [string[]] input and writes the code that would create a string array with that information. Encloses strings in single quotes replacing any existing single quotes with 2 x single quotes. .PARAMETER Text The text to be included in the string array .PARAMETER VariableName The name of the string array variable .EXAMPLE Write-StringArray -Text Hello,World,"it's me" Would return $StringArray = @( 'Hello', 'World', 'it''s me' ) .EXAMPLE 1,2,99 | Write-StringArray -VariableName MyVariable Would return $MyVariable = @( '1', '2', '99' ) .OUTPUTS [string[]] #> #region Parameter [CmdletBinding(ConfirmImpact='None')] [OutputType('string')] Param( [Parameter(Mandatory,HelpMessage = 'Enter a series of values',Position = 0,ValueFromPipeline)] [string[]] $Text, [string] $VariableName = 'StringArray' ) #endregion Parameter begin { Write-Verbose -Message "Starting [$($MyInvocation.Mycommand)]" $ReturnVal = "`$$VariableName = @(`n" } process { foreach ($CurLine in $Text) { $ReturnVal += " `'$($CurLine -replace "`'", "`'`'")',`n" } } end { $ReturnVal = $ReturnVal -replace ",`n$", "`n" $ReturnVal += ')' Write-Output -InputObject $ReturnVal Write-Verbose -Message "Ending [$($MyInvocation.Mycommand)]" } } |