将值添加到Foreach-Object的三个不同变量中

时间:2015-01-26 21:29:45

标签: powershell powershell-v3.0

我有一个文件(config.cfg),它有三个这样的字符串:host:user:pass

在我的Unix代码中,我这样做是为了获取并将值分配给三个不同的变量:

  $FTP_HOST=$( cut -f1 -d: config.cfg )
  $FTP_USER=$( cut -f2 -d: config.cfg )
  $FTP_PASS=$( cut -f3 -d: config.cfg )

我如何在PowerShell 3.0中执行此操作?我尝试过Foreach-Object但是找不到分配三个变量的方法。

2 个答案:

答案 0 :(得分:2)

PowerShell从Perl和Python学习,所以你可以这样做:

$FTP_HOST, $FTP_USER, $FTP_PASS = (Get-Content .\config.cfg) -split ':'

答案 1 :(得分:1)

您可以通过冒号分割数据并分配每个元素:

$config = Get-Content config.cfg
$FTP_HOST = ($config -split ":")[0]
$FTP_USER = ($config -split ":")[1]
$FTP_PASS = ($config -split ":")[2]

或者将数据预分割成数组,然后分配数组元素:

$config = Get-Content config.cfg
$carry = $config -split ":"
$FTP_HOST = $carry[0]
#etc...