需要冒號的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