gpt4 book ai didi

powershell - 尝试使用循环索引的范围表示法遍历脚本文件中的 $args 时出错

转载 作者:行者123 更新时间:2023-12-04 23:10:18 25 4
gpt4 key购买 nike

我无法弄清楚为什么以下代码失败:

# test.ps1
"`$args: ($args)"
"`$args count: $($args.length)"

# this fails
0..$($args.length - 1) | %{ $args[$_] = ($args[$_] -replace '`n',"`n") }

# this works
$i = 0
foreach ( $el in $args ) { $args[$i] = $args[$i] -replace '`n',"`n"; $i++ }
"$args"

我这样称呼它:
rem from cmd.exe
powershell.exe -noprofile -file test.ps1 "a`nb" "c"

最佳答案

范围问题。 foreach-object (%) 脚本块中的 $args 是该脚本块的局部变量。以下工作:

"`$args: $args" 
"`$args count: $($args.length)"
$a = $args

# this fails
0..$($args.length - 1) | %{ $a[$_] = ($a[$_] -replace '`n',"`n") }
$a

关于powershell - 尝试使用循环索引的范围表示法遍历脚本文件中的 $args 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2367731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com