2012-06-12 62 views
3

以下的相反功能是什麼?PowerShell中的Split對面(非cmdlet)

$tmp = $domain.split(".") 

換句話說,我該如何將一個數組傳遞給一個字符串。我聽說過「加入」,但我無法讓它工作。

非cmdlet,非任務,這必須與PowerShell v1和所有舊系統一起使用!

回答

4
$result = [string]::join(".", $array) 
+0

Works完美!謝謝! –

+0

這個人有綠色的複選標記,但也請參閱jon Z的回答。 –

13

有PowerShell中的一個連接操作:

$tmp -join "." 
3

除了加入運營商(在v2中引入)和.NET加入方法,你也可以改變特殊變量$OFS的價值(Ouptut字段分隔符)到一個點(默認值是一個空格)幷包圍TMP在引號:

PS> $tmp = "foo.domain.com".split(".") 
PS> & {$ofs='.';"$tmp"} 
foo.domain.com 

在上面的例子中我的腳本塊,以防止它從樟宜改變$ OFS ng(腳本塊創建嵌套範圍)

+0

啊,謝伊,我讀過很多你的教程,我必須說你不要失望!保持良好的工作人員。 - 關於這個問題,我很驚訝沒有像PHP的「implode()」函數那樣簡單的函數。我們生活在一個什麼樣的世界裏。 –

+0

感謝@KarlMorrison,我不熟悉Implode函數,但可以創建一個:function implode($ array,$ delimiter){$ array -join $ delimiter}; implode $ tmp'。' –

+1

腳本塊不會創建嵌套範圍。 – Nacht