Join-String.ps1
<#PSScriptInfo
.VERSION 1.1 .GUID e76c02b2-9bba-4f5f-8f00-4016d954ce4e .AUTHOR saw-friendship .COMPANYNAME .COPYRIGHT .TAGS Join String Pipeline .LICENSEURI .PROJECTURI .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES FormatString UseCulture #> <# .DESCRIPTION Join String from Array .EXAMPLE Join-String (Get-Process | select -f 3) -Property id 5892;18344;4992 .EXAMPLE Get-Process | select -f 3 | Join-String -Property id 5892;18344;4992 .EXAMPLE Join-String @(1..3) 1;2;3 .EXAMPLE 1..3 | Join-String 1;2;3 .EXAMPLE 1..3 | Join-String -Separator ',' -SingleQuote '1','2','3' .EXAMPLE Get-Process | select -l 3 | Join-String -Property id -SingleQuote -OutputPrefix '"' -OutputSuffix '"' "'11384';'15324';'13624'" #> param( [Parameter(Mandatory=$false,ValueFromPipeline=$true)]$InputObject ,[String]$Property = 'Name' ,[String][alias('Delimiter')]$Separator = ([System.Globalization.CultureInfo]::CurrentCulture).TextInfo.ListSeparator ,[String]$OutputPrefix ,[String]$OutputSuffix ,[Switch]$SingleQuote ,[Switch]$DoubleQuote ,[CultureInfo]$Culture = [System.Globalization.CultureInfo]::CurrentCulture ) Begin { $Objects = @() if ($SingleQuote) {[String]$qs = "'"} else {[String]$qs = ''} if ($DoubleQuote) {[String]$qd = '"'} else {[String]$qd = ''} } Process { $Objects += $InputObject } End { if($Objects | Get-Member -Name $Property){ $OutputPrefix + (($Objects | % {$qd+$qs+$_.$Property+$qs+$qd}) -join $Separator) + $OutputSuffix } else { $OutputPrefix + (($Objects | % {$qd+$qs+$_.ToString($Culture)+$qs+$qd}) -join $Separator) + $OutputSuffix } } |