需要冒号的Powershell命令行开关参数如何处理?Powershell:命令行参数中的冒号
考虑Exchange 2010管理shell cmdlet Move-ActiveMailboxDatabase。 Confirm开关是System.Management.Automation.SwitchParameter
,必须像这样被使用,
Move-ActiveMailboxDatabase -Confirm:$false
没有冒号命令无法识别不确认像这样开关,
Move-ActiveMailboxDatabase -Confirm $false
这是为什么?冒号在那里有什么不同?为什么Exchange2010似乎是我注意到这种行为的唯一事情?
我已经通过Powershell在Action和Powershell 2.0中浏览过,但没有发现任何有关此语法的内容。范围解析和.Net对象访问使用记录在这些书上。
我的Google-fu找到了一个article,它声称它明确地转发了开关参数值,但未能解释它是什么。
不是完整的答案 - 我不知道Mailboxes的例子,但是在很多其他情况下(例如`Set-SMBServerConfiguration`),`-Confirm:$ false`的效果与它不一样。我可以使用`-Confirm:$ false`或`-Force`,否则我需要确认。 – Lamarth 2015-12-22 03:39:07