Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在foreach循环中的if语句中,PowerShell中的增量变量。好像坏了_Powershell_Variables_Foreach_Counting - Fatal编程技术网

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

在foreach循环中的if语句中,PowerShell中的增量变量。好像坏了,powershell,variables,foreach,counting,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。这似乎不算数 如何解决此问题?您的问题不清楚

我这里有一个非常简单的问题,但我想不出来,让我发疯。 我怀疑这是变量的某种范围问题(全局的,等等?)

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

$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。这似乎不算数


如何解决此问题?

您的问题不清楚,但看起来您正试图在文本文件的每一行输出行号。如果是,一种方法是:

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

您的问题不清楚,但看起来您正试图在文本文件的每一行输出行号。如果是,一种方法是:

Get-Content 'somefile.txt' |
    ForEach-Object {$i = 0}{
        "$i Line: $_"
        $i++
    }
$i=1
1
赋值给
$i
,因此结果总是
1

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

有关详细信息,请参见
获取有关\u比较\u运算符的帮助。

$i=1
1
赋值给
$i
,因此结果总是
1

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


有关详细信息,请参见
获取有关\u comparison\u运算符的帮助。

=
是一个赋值,要比较use
if($i-eq 1){
=
是一个赋值,要比较use
if($i-eq 1){
是的,这正是我想要做的。理想情况下,只显示与数字匹配的某些行。仍然不确定为什么我的代码无法递增一个简单变量。@GrahamSmart它没有失败递增,每次循环运行show am时,你都将其设置回
1
我??我看不到这一点,因为声明在循环之外?我讨厌PS)谢谢大家!boxdog,你们的代码也很神奇!是的,这正是我想做的。理想情况下,只显示与数字匹配的某些行。仍然不确定为什么我的代码不能递增一个简单变量。@GrahamSmart它不能递增,每次循环运行show is I时,您都将其设置回
1
,我不认为这是e声明在循环之外?我讨厌PS;)谢谢大家!你们的代码也创造了奇迹!