Warm tip: This article is reproduced from serverfault.com, please click

其他-Powershell在for循环中访问多个参数

(其他 - Powershell accessing multiple parameters in a for loop)

发布于 2014-11-28 19:08:29

嗨,我是Powershell的新手,我正在编写一个接受多个参数的脚本。在文件内的for循环中访问这些参数。看起来像这样

$numOfArgs = args.Length
for ($i=3; $i -le $numOfArgs; $i++)
{


   write-host "folder: $args[$i]"
   # does something with the arguments

}

但是,输出为我提供了所有的整体参数,而不只是数组中作为数组元素指定的一个参数?有人可以告诉我这里的错误在哪里吗?谢谢!

Questioner
user3351901
Viewed
11
Micky Balladelli 2014-11-29 03:19:28

编辑:感谢邓肯指出这一点,在变量中缺少$。

试试这个:

$numOfArgs = $args.Length
for ($i=3; $i -le $numOfArgs; $i++)
{
   write-host "folder: $($args[$i])"
   # does something with the arguments
}

将变量放在字符串中时,将计算变量,而不是整个表达式。因此,$()其与Powershell包围在一起将评估整个表达式。

换句话说,仅$args评估而不是$args[$i]