我正在命令行中工作。假设我的示例如下所示:

Param(
  [Parameter()] [string]$greeting="HelloWorld"
)

在命令行中,我可以这样做:mygreeting并输出HelloWorld
或者我可以这样做:mygreeting -greeting="whatever"并输出whatever
为什么我不能输入?
mygreeting -greeting

没有得到一个错误,该参数丢失?

在代码中,我希望能够基本上说:
如果指定greeting但没有值,则根据其他情况有条件地设置值
如果未指定greeting,则使用默认值

最佳答案

这是设计使然。 在PowerShell中,您通过指定参数名称后跟要传递的值来传递参数(除非它是一个开关,或者使用仅传递值的位置参数)。

09-04 23:11