我是PowerShell的新手,所以這可能很容易回答。假設我創建這樣一個數組:如何從對象轉換爲字符串
$array1 = "a", "b", "c"
然後,我創建另一個數組:
$array2 = $array1|select-object{$_}
我想這樣做是爲了參加在$數組2中的所有值,所以我結束了字符串「abc」,但在$ array2上使用-join「」只會產生一個空的結果。有人可以向我解釋我該如何解決這個問題?
我是PowerShell的新手,所以這可能很容易回答。假設我創建這樣一個數組:如何從對象轉換爲字符串
$array1 = "a", "b", "c"
然後,我創建另一個數組:
$array2 = $array1|select-object{$_}
我想這樣做是爲了參加在$數組2中的所有值,所以我結束了字符串「abc」,但在$ array2上使用-join「」只會產生一個空的結果。有人可以向我解釋我該如何解決這個問題?
只是$array2 = $array1 | select-object
或$array2 = $array1
$array1 = "a", "b", "c"
#expected output: a b c
$array1 -join " "
#here it is
$array2 = $array1 | select-object
#expected output: a b c
$array2 -join " "
#here it is
$array2 = $array1
#expected output: a b c
$array2 -join " "
感謝akim,刪除了{$ _}爲我工作! – 2012-07-20 08:32:37
修改
$array2 = $array1|select-object{$_}
在
$array2 = $array1
然後
$array2 -join ' '
作品!
一個簡單的方法更換$array2 = $array1|select-object{$_}
做你需要在這裏的PowerShell是什麼這兩個
"$array1"
或
'' + $array1
將加盟數組元素爲$OFS
或空間,如果$OFS
是$null
。
但正如其他人所指出的,您的Select-Object
呼叫是錯誤的。選擇對象需要屬性名稱,而不是腳本塊。在這種情況下,你可能想要ForEach-Object
?
怎麼樣這樣鑄造:''[string] $ array1'?這是一個好習慣嗎? – 2012-07-20 08:31:46
也應該工作。如果這是你想要的,我認爲最好的做法是明確的「-join」。交互式我通常選擇最短的變體,主要是因爲我經常在PowerShell中打高爾夫球。 – Joey 2012-07-20 08:46:44
爲什麼在將'array1'複製到'array2'時使用'| select-object {$ _}'? – 2012-07-20 08:26:26
這只是爲了強調我的例子。我絕對不會使用這個認證,但我想我不太清楚 – 2012-07-20 08:32:10