我正在尝试分配/分割字符串以将它们分配给变量。每行的长度是随机的,所以我有点不知所措。谢谢你的帮助。
-String-
公司1
员工1
员工2
员工3
公司2
员工1
员工2
员工3
我想将每一行分配给一个变量。 $ a ="公司1" $ b ="员工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