将不同行中的值传递给Powershell中的不同变量

时间:2018-06-20 08:12:43

标签: powershell

我有一个文本文件(file1.txt),其中记录的行不同 Variable1,2018
Variable2,Jun

现在在我的脚本中,我想将值存储在不同的变量中。 例如,我希望最终结果是 年份= 2018 期间=六月

我尝试了以下逻辑,但由于将两个值都存储在一个变量中,因此无法解决目的。

 Get-Content "file1.txt" | ForEach-Object {
 $Var=$_.split(",")
 $Year=$Var[1]
 $Period=$Var[1]
 }

请帮助。

3 个答案:

答案 0 :(得分:1)

如果要使用变量,可以执行以下操作:

$Object=(Get-Content C:\Temp\test.txt).Replace(',', '=') | ConvertFrom-StringData
$Object.Variable1
$Object.Variable2

答案 1 :(得分:1)

您可以使用如下哈希来实现:

$h = @{}
Get-Content "file1.txt" | % {
  $var = $_.split(",")
  $h[$var[0]] = $var[1]
}

$h['Variable1']

或者您可以使用这样的对象:

$o = New-Object psobject
Get-Content "file1.txt" | % {
  $var = $_.split(",")
  $o | Add-Member -MemberType NoteProperty -Name $var[0] -Value $var[1]
  $h[$var[0]] = $var[1]
}

$o.Variable1

答案 2 :(得分:1)

为什么不使用new-variable cmdlet?

#get content from your file instead
$str = "Variable1,2018","Variable2,Jun"

foreach ($line in $str)
{
    $line = $line.split(",")
    New-Variable -name $line[0] -Value $line[1]
}