如何迭代脚本参数?

时间:2015-06-01 15:34:20

标签: unix powershell command-line-arguments shift

在Unix shell脚本中,可以使用类似的东西来解析脚本的参数:

while [ $1 ]; do
  #
  # do stuff
  #
  shift
done

如何在PowerShell中实现类似的功能?

1 个答案:

答案 0 :(得分:1)

对于未声明的参数,您可以使用$Args automatic variable作为@AnsgarWeichers建议的任一foreach方法(见下文),但我认为你所描述的Unix方法是针对PowerShell的哲学。 PowerShell是一个.Net环境,所以一切都基本上是一个对象,而不是从根本上说是一个字符串。

您应该定义参数,为它们提供类型,最重要的是,为它们提供名称。请参阅about_Parametersabout_Functionsabout_Functions_Advancedabout_Functions_Advanced_Parameters。可以编写脚本以像cmdlet或函数一样运行,这就是您查看这些帮助文档的原因。

如果您的参数合法地是一个数组,您可以使用foreach statement来迭代它:

foreach ($item in $MyParameterArray) {
    [...]
}

或使用ForEach-Object cmdlet

$MyParameterArray | ForEach-Object {
    [...]
}