IT-Swarm.Net

كيف يمكنني تحويل كائن صفيف إلى سلسلة في PowerShell؟

كيف يمكنني تحويل كائن صفيف إلى سلسلة؟

حاولت:

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

بلا حظ. ما هي الاحتمالات المختلفة في PowerShell؟

139
jrara
$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
244
Roman Kuzmin

استضافة سحابة سريعة وموثوقة وبأسعار معقولة

اشترك واحصل على $50 مكافأة خلال 30 يومًا!

لقد وجدت أن توصيل المصفوفة إلى Out-String cmdlet يعمل جيدًا أيضًا.

فمثلا:

PS C:\> $a  | out-string

This
Is
a
cat

يعتمد ذلك على هدفك النهائي فيما يتعلق بالطريقة الأفضل للاستخدام.

29
Jeremy Saunders
1> $a = "This", "Is", "a", "cat"

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

السطر الثاني ينفذ العملية ويخرج إلى المضيف ، لكنه لا يغير $ a:

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

4> $a

هذه قطة

5> $a.Count

1
15
TCC

من الأنابيب

# 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'

مثال

6
Steven Penny

يمكنك تحديد نوع مثل هذا:

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

التحقق من النوع:

$a.GetType()

يؤكد:

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

إخراج $ a:

 PS C: \> $ a 
 هذا 
 هل 
 قطة 
 [.
3
Ameer Deen
$a = "This", "Is", "a", "cat"

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

Write-Host $sent
0
Underverse