Kol*_*yon 0 powershell foreach scope reference
假设你有数组:
$arr = @(1,2,3,4,5,6,7,8,9)
foreach($number in $arr) { $number ++ }
Run Code Online (Sandbox Code Playgroud)
我希望输出是:
$arr = @(2,3,4,5,6,7,8,9,10)
为什么这不是真的?
你认为你正在做的事情相当于:
for ($i = 0; $i -lt $arr.Count; $i++) {
$arr[$i]++;
}
Run Code Online (Sandbox Code Playgroud)
你实际上在做的事情相当于:
for ($i = 0; $i -lt $arr.Count; $i++) {
$number = $arr[$i];
$number++;
}
Run Code Online (Sandbox Code Playgroud)
你真正想做的是:
$arr = $arr | ForEach-Object { $_ + 1; }
Run Code Online (Sandbox Code Playgroud)