2012-11-17 64 views
4

我有兩個數組,其中包含從文本文件中獲取信息的字符串選擇。然後,我使用For循環遍歷這兩個數組並將這些字符串打印在一起,這恰好創建了一個文件夾目標和文件名。Powershell - 刪除兩個變量之間的空間

Get-Content .\PostBackupCheck-TextFile.txt | ForEach-Object { $a = $_ -split ' ' ; $locationArray += "$($a[0]):\$($a[1])\" ; $imageArray += "$($a[2])_$($a[3])_VOL_b00$($a[4])_i000.spi" } 

上面將一個文本文件,它分爲單獨的部分,存儲一些進入locationArray和其他信息在imageArray,像這樣:

locationArray[0]L:\Place\

imageArray[0]將是SERVERNAME_C_VOL_b001_i005.spi

然後我運行For循環:

for ($i=0; $i -le $imageArray.Length - 1; $i++) 
    {Write-Host $locationArray[$i]$imageArray[$i]} 

但它把L:\Place\SERVERNAME_C_VOL_b001_i005.spi

,使其成爲一個空格:L:\Place\ SERVERNAME_C_VOL_b001_i005.spi

相反,它應該是:L:\Place\SERVERNAME_C_VOL_b001_i005.spi

我怎樣才能解決這個問題?

回答

3

選項#1 - 最佳可讀性:

{Write-Host ("{0}{1}" -f $locationArray[$i], $imageArray[$i]) } 

選項#2 - 稍混亂,更少可讀:

{Write-Host "$($locationArray[$i])$($imageArray[$i])" } 

選項#3 - 超過#可讀2,但多行:

{ 
    $location = $locationArray[$i]; 
    $image = $imageArray[$i]; 
    Write-Host "$location$image"; 
} 
+0

這完美的作品!儘管我對Powershell相當陌生,但究竟做了什麼呢? – PnP

+0

@TheD:'-f'是執行[String.Format]的Powershell方法(http://msdn.microsoft.com/zh-cn/library/system.string.format.aspx)。您可以在{0}和{1}之間放置一些靜態文本,並且非常易讀。選項#2是爲了逃避你的變量,爲此你需要許多美元符號,並且閱讀和理解更加困難。 – Neolisk

+0

啊哈,太棒了!謝謝! – PnP