在Powershell中,按照官方语法中定义的顺序使用cmdlet参数是否重要?
我在现有脚本中将-cc参数添加到send-mailMessage.我在-To之后立即添加了-cc,它工作得很好,所以我倾向于单独留下足够好的东西.但cmdlet的唯一参数集在帮助文本中定义如下:
Send-MailMessage [-To] [-Subject] [[-Body]] [[-SmtpServer]] -From [-Attachments] [-Bcc] [-BodyAsHtml] [-Cc] [-Credential] [-DeliveryNotificationOption] [ -Encoding] [-Port] [-Priority] [-UseSsl] []
因此,我认为最好的做法是运行这样的命令(在主题,正文,smtpserver之后的cc,以及在帮助文本之后):
send-mailmessage -to $mailTo -subject $mailSubj -body $msgbody -smtpserver smtp.domain.tld -from $mailFrom -cc $mailCC
Run Code Online (Sandbox Code Playgroud)
...而不是像这样(在许多其他参数之前的cc):
send-mailmessage -to $mailTo -cc $mailCC -subject $mailSubj -body $msgbody -smtpserver smtp.domain.tld -from $mailFrom
Run Code Online (Sandbox Code Playgroud)
总的来说,我并没有对此非常小心,而且有些东西可行.所以回过头来调整功能现有的脚本肯定是有点过分(更不用说容易出错了).但是,在未来的脚本中,也许值得尊重未来的参数顺序?还是不值得麻烦?怎么说你?
当然,您不希望错误地假设哪个参数是默认参数,然后省略参数名称; 我还可以想象这种事情变得混乱了自定义函数等等.但我的问题是关于更简单的情况,当显式命名一个内置cmdlet的参数时,就像上面的send-mailMessage示例一样.