将值添加到 Foreach-Object 的三个不同变量中
Add value into three different variables from Foreach-Object
我有一个文件 (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 但找不到分配给三个变量的方法。
您可以用冒号拆分数据并分配每个元素:
$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...
PowerShell 借鉴了 Perl 和 Python,因此您可以这样做:
$FTP_HOST, $FTP_USER, $FTP_PASS = (Get-Content .\config.cfg) -split ':'
我有一个文件 (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 但找不到分配给三个变量的方法。
您可以用冒号拆分数据并分配每个元素:
$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...
PowerShell 借鉴了 Perl 和 Python,因此您可以这样做:
$FTP_HOST, $FTP_USER, $FTP_PASS = (Get-Content .\config.cfg) -split ':'