2012-02-01 26 views
4

我有20臺服務器列表:服務器1,服務器,服務器3,服務器4,... server20。串聯2個變量(PowerShell的)

我需要有一個包含這20個服務器陣列「服務器」,是這樣的:

$prefix = "server" 
$number = "1..20" 
$servers = $prefix+number 

我的預期輸出:$servers="server1","server2","server3",...,"server20"

在此先感謝

回答

3

最簡單的方法就是乾脆直接拼出來:

$servers = 1..20 | ForEach-Object { "server$_" } 
+0

謝謝,這正是我想要的,並且效果很好。 – expirat001 2012-02-08 20:54:02

1

更改你的最後一行:

$Servers = @() 
$Number | % {$servers=$servers + "$prefix$_"} 

The first line speci外資企業$servers爲陣列(否則會被級聯爲長字符串)。

第二行會經過所有的數字都在$number陣列,併爲每一個條目。

+0

@Joey - 隨意張貼的答案。我可以在PS中獲得,但我不是職業球員,所以如果你有更好的方法,我會很高興看到它。 – JNK 2012-02-01 16:52:30

+0

也許我只是有地道的PowerShell代碼應該是什麼樣子奇特的想法。但我通常會發現,如果你寫的東西,你會怎麼做在Java或C#它看起來非常複雜和笨拙。 – Joey 2012-02-01 17:54:55

+0

@Joey - 理解! – JNK 2012-02-01 18:34:59

1

使用格式字符串

$prefix = "Server" 
1..20 | foreach {"$prefix{0}" -f $_} 

您還可以使用$前綴{0:D2}如果你希望他們都有2位數的(零填充)前綴後的數字。

0
$null, $servers = 0..20 -join ';server' -split ';' 
$servers 
+0

這很複雜。 Imho明確表達你的意圖總是比較好 - 這不是我在這裏看到的。 – Joey 2012-02-09 05:58:02

+0

@Joey只顯示其他方式。最簡單的方法就是用替換操作: 1..20 -replace「^」,「服務器」 – zx38 2012-02-09 15:30:42