PowerShell: How do I convert an array object to a string in PowerShell?

How can I convert an array object to string?

I tried:

$a = "This", "Is", "a", "cat" [system.String]::Join(" ", $a) 

with no luck. What are different possibilities in PowerShell?

2

6 Answers

$a = 'This', 'Is', 'a', 'cat' 

Using double quotes (and optionally use the separator $ofs)

# This Is a cat "$a" # This-Is-a-cat $ofs = '-' # after this all casts work this way until $ofs changes! "$a" 

Using operator join

# This-Is-a-cat $a -join '-' # ThisIsacat -join $a 

Using conversion to [string]

# This Is a cat [string]$a # This-Is-a-cat $ofs = '-' [string]$a 
8

I found that piping the array to the Out-String cmdlet works well too.

For example:

PS C:\> $a | out-string This Is a cat 

It depends on your end goal as to which method is the best to use.

2
1> $a = "This", "Is", "a", "cat" 2> [system.String]::Join(" ", $a) 

Line two performs the operation and outputs to host, but does not modify $a:

3> $a = [system.String]::Join(" ", $a) 4> $a This Is a cat 5> $a.Count 1 

From a pipe

# This Is a cat 'This', 'Is', 'a', 'cat' | & {"$input"} # This-Is-a-cat 'This', 'Is', 'a', 'cat' | & {$ofs='-';"$input"} 

Write-Host

# This Is a cat Write-Host 'This', 'Is', 'a', 'cat' # This-Is-a-cat Write-Host -Separator '-' 'This', 'Is', 'a', 'cat' 

Example

1

You could specify type like this:

[string[]] $a = "This", "Is", "a", "cat" 

Checking the type:

$a.GetType() 

Confirms:

 IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String[] System.Array 

Outputting $a:

 PS C:\> $a This Is a cat 
$a = "This", "Is", "a", "cat" foreach ( $word in $a ) { $sent = "$sent $word" } $sent = $sent.Substring(1) Write-Host $sent 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like