2015-10-23 108 views
0

我想分配/分割出一個字符串分配給變量。每排的長度是隨機的,所以我有點不知所措。謝謝您的幫助。Powershell字符串分配行到變量

-String-
公司1
僱員1
僱員2
員工3
公司2
僱員1
僱員2
員工3

欲分配的每個線到一個變量。 $ a =「公司1」$ b =「員工1」等。這個字符串中唯一的穩定變量是每行數據是一個不同的變量。每條線的長度是未知的。

再次感謝!

+0

到目前爲止您有什麼嘗試過嗎?你的字符串是換行符的字符串?你希望每個值都是自己的變量?如果有更好的方法,我很好奇你如何處理這些信息。但像我的第一個問題。你有什麼嘗試? – Matt

回答

0

如果你真的需要爲你的字符串中的每一行不同的變量,然後用New-Variable在一個循環:

$str = 'Company 1 
Employee 1 
Employee 2 
Employee 3 
Company 2 
Employee 1 
Employee 2 
Employee 3' 

# to know how many variables were created we will put them into array 
$variables = @() 
$i = 0 
foreach ($row in ($str -split [Environment]::NewLine)) { 
    # create new variable from row's value 
    New-Variable -Name "row$i" -Value $row 
    # and create a member of array 
    $variables += [pscustomobject]@{Name = "row$i"; Value = $row} 
    $i++ 
} 

Write-Host "Total: $i" 

foreach ($var in $variables) { 
    Write-Host $var.Name $var.Value 
} 

# now we can get value from a variable 
Write-Host $row1 
# or from array 
Write-Host $variables[1].Name $variables[1].Value 

但對項目的集合操作實在是simplier使用數組和其他收集類型沒有創建每個項目的變量:

$rows = @() 
foreach ($row in ($str -split [Environment]::NewLine)) { 
    $rows += $row 
} 
Write-Host "Total rows: $rows.Count" 
# get the first row 
$rows[0]