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

前端 未结 6 1616
执念已碎
执念已碎 2020-12-07 08:45

How can I convert an array object to string?

I tried:

$a = \"This\", \"Is\", \"a\", \"cat\"
[system.String]::J         


        
相关标签:
6条回答
  • 2020-12-07 09:03
    $a = "This", "Is", "a", "cat"
    
    foreach ( $word in $a ) { $sent = "$sent $word" }
    $sent = $sent.Substring(1)
    
    Write-Host $sent
    
    0 讨论(0)
  • 2020-12-07 09:05
    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
    
    0 讨论(0)
  • 2020-12-07 09:11

    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
    
    0 讨论(0)
  • 2020-12-07 09:13

    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.

    0 讨论(0)
  • 2020-12-07 09:15
    $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
    
    0 讨论(0)
  • 2020-12-07 09:15

    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

    0 讨论(0)
提交回复
热议问题