嗨,我是Powershell的新手,我正在编写一个接受多个参数的脚本。在文件内的for循环中访问这些参数。看起来像这样
$numOfArgs = args.Length
for ($i=3; $i -le $numOfArgs; $i++)
{
write-host "folder: $args[$i]"
# does something with the arguments
}
但是,输出为我提供了所有的整体参数,而不只是数组中作为数组元素指定的一个参数?有人可以告诉我这里的错误在哪里吗?谢谢!
编辑:感谢邓肯指出这一点,在变量中缺少$。
试试这个:
$numOfArgs = $args.Length
for ($i=3; $i -le $numOfArgs; $i++)
{
write-host "folder: $($args[$i])"
# does something with the arguments
}
将变量放在字符串中时,将计算变量,而不是整个表达式。因此,$()
将其与Powershell包围在一起将评估整个表达式。
换句话说,仅$args
评估而不是$args[$i]
您
$
在第一行中需要一个:$args.Length
我尝试为您添加它,但是当您改善答案时,它就被覆盖了。