从foreach循环中的if语句中在PowerShell中递增变量。好像坏了

时间:2018-08-13 08:50:32

标签: powershell variables foreach counting

我在这里有一个超级容易的人,但我无法弄清楚并发疯。 我怀疑这是变量的某种范围界定问题(全局等)

无论如何,这是我的代码:

$i = 0
foreach ($line in Get-Content 'somefile.txt') {

    if ($i = 1) {
        echo "$i Line: $line"
    }
    $i++
    // I even tried $i = $i + 1
}

输出始终为$ 1 = 1。似乎不算数。

我该如何解决?

2 个答案:

答案 0 :(得分:2)

$i = 1 1分配给$i,因此结果始终为1

您需要使用-eqif ($i -eq 1) ...

有关更多信息,请参见Get-Help about_comparison_operators

答案 1 :(得分:1)

您的问题尚不清楚,但似乎您正在尝试输出文本文件的每一行,并在每行前加上行号。如果是这样,一种方法是:

Get-Content 'somefile.txt' |
    ForEach-Object {$i = 0}{
        "$i Line: $_"
        $i++
    }