@
weiceshi 已经发现了,然而同样是巨硬家的 C#就不允许这种参数顺序混乱的 feature 。
https://msdn.microsoft.com/en-us/library/dd264739.aspx另外技术文档依然继续坑人,比如告诉你的 synopsis 是:
Add-VpnConnection [-Name] <String> [-ServerAddress] <String> [[-TunnelType] <String>] [-AllUserConnection]
[-RememberCredential] [-SplitTunneling] [-Force] [-PassThru] [[-L2tpPsk] <String>] [-UseWinlogonCredential]
[-ServerList <CimInstance[]>] [-DnsSuffix <String>] [-IdleDisconnectSeconds <UInt32>]
[[-EapConfigXmlStream] <XmlDocument>] [[-AuthenticationMethod] <String[]>] [[-EncryptionLevel] <String>]
[-MachineCertificateIssuerFilter <X509Certificate2>] [-MachineCertificateEKUFilter <String[]>]
[-CimSession <CimSession[]>] [-ThrottleLimit <Int32>] [-AsJob] [-WhatIf] [-Confirm] [<CommonParameters>]
你看到有三个参数的顺序是 -AllUserConnection ,-AuthenticationMethod ,-EncryptionLevel
然而你只有查看了具体的 position 属性之后才会发现它们的顺序其实是 -EncryptionLevel(4), -AuthenticationMethod(5), -AllUserConnection(7)
是的,你可以主张这都是 feature ,而且你都写了文档了。然而这些都是违反基本知识(或者说常识)的坑,说白了还是 MDZZ 。
我哪天写个命令的参数,名称叫 -EnableX ,实际上用处却是禁用 X ,并且在详细文档中正确地注明用处就是禁用,那么那些上当的人都是自己不看文档的错对吧?