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