[powershell] PowerShell에서 배열 객체를 문자열로 어떻게 변환합니까?

배열 객체를 문자열로 어떻게 변환 할 수 있습니까?

나는 시도했다 :

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

운없이 . PowerShell에서 다른 가능성은 무엇입니까?



답변

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

큰 따옴표 사용 (및 선택적으로 구분 기호 사용 $ofs)

# This Is a cat
"$a"

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

연산자 결합 사용

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

# ThisIsacat
-join $a

로 변환 사용 [string]

# This Is a cat
[string]$a

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


답변

배열을 Out-Stringcmdlet으로 파이프하는 것도 잘 작동 한다는 것을 알았 습니다.

예를 들면 다음과 같습니다.

PS C:\> $a  | out-string

This
Is
a
cat

어떤 방법이 가장 적합한 지 최종 목표에 달려 있습니다.


답변

1> $a = "This", "Is", "a", "cat"

2> [system.String]::Join(" ", $a)

두 번째 줄은 작업을 수행하고 호스트로 출력하지만 $ a는 수정하지 않습니다.

3> $a = [system.String]::Join(" ", $a)

4> $a

This Is a cat

5> $a.Count

1


답변

파이프에서

# This Is a cat
'This', 'Is', 'a', 'cat' | & {"$input"}

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

쓰기 호스트

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

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


답변

다음과 같이 유형을 지정할 수 있습니다.

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

유형 확인 :

$a.GetType()

확인합니다 :

    IsPublic IsSerial 이름 BaseType
    -------- -------- ---- --------
    True True String [] System.Array

$ a 출력 :

PS C : \> $ a
이
입니다
ㅏ
고양이


답변

$a = "This", "Is", "a", "cat"

foreach ( $word in $a ) { $sent = "$sent $word" }
$sent = $sent.Substring(1)

Write-Host $sent


답변