Powershell字符串将行分配给变量

时间:2015-10-23 23:40:07

标签: string list powershell

我正在尝试分配/分割字符串以将它们分配给变量。每行的长度是随机的,所以我有点不知所措。谢谢你的帮助。

-String-
公司1
员工1 员工2
员工3
公司2
员工1 员工2
员工3

我想将每一行分配给一个变量。 $ a ="公司1" $ b ="员工1"等。此字符串中唯一的稳定变量是每行数据是一个不同的变量。每行的长度未知。

再次感谢!

1 个答案:

答案 0 :(得分:0)

如果你真的需要为字符串的每一行创建一个不同的变量,那么在循环中使用attach

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