配列オブジェクトを文字列に変換する方法
私は試した:
$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-String
コマンドレットにパイプ処理してもうまくいくことがわかりました。
例えば:
PS C:\> $a | out-string
This
Is
a
cat
どちらの方法を使用するのが最善かについては、最終目標によって異なります。
1> $a = "This", "Is", "a", "cat"
2> [system.String]::Join(" ", $a)
2行目は操作を実行し、Hostに出力しますが、$ aは変更しません。
3> $a = [system.String]::Join(" ", $a)
4> $a
これは猫です
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 ねこ
$a = "This", "Is", "a", "cat"
foreach ( $Word in $a ) { $sent = "$sent $Word" }
$sent = $sent.Substring(1)
Write-Host $sent