【发布时间】:2015-04-28 22:44:07
【问题描述】:
不同于:How to handle command-line arguments in PowerShell
在 powershell 脚本中处理未命名命令行参数的最佳方法是什么?
例如,我有一个我想运行的 powershell 脚本
.\test.ps1 L3
如果未提供 L3,则会出现错误。我不想运行它:
.\test.ps1 -lab L3
我当前的脚本:
$args[0]
如果参数被省略,则不会导致错误。
这看起来很有希望,还没有尝试过: https://technet.microsoft.com/en-us/library/hh847743.aspx * 编辑:* 有希望的链接很有用——我用它来形成我所有的例子
【问题讨论】:
-
为什么不想要命名参数(parameters)?它们使代码更具可读性,如果您正确设置参数,我认为您可以在传递它们时不命名它们,只要您以正确的顺序执行。
-
命名参数很棒。但是这个脚本总是需要这个参数,每次我使用它都会节省三到四次击键。
-
如果它是唯一的参数,您可以将其命名并以未命名的形式传递,PowerShell 将处理它就好了。不要为了您的方便而写作 - 写作是为了让下一个必须使用它的人(而不是您)可以理解您的脚本。
-
此参数仅在命令行中提供,不在其他脚本中提供。我同意在脚本中,命名参数是一件好事。
-
我的观点仍然存在。即使是在命令行中,为了让下一个人理解,而不是为了方便。命名参数几乎总是一件好事,无论如何 - 当有人必须修改此脚本以添加另一个参数时,他们会希望它们命名。现在命名它不需要花费你任何费用,就去做吧。
标签: powershell command-line-arguments powershell-1.0