{"id":10561,"date":"2006-04-25T12:18:22","date_gmt":"2006-04-25T12:18:22","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/2006\/04\/25\/monad-cmdlet-cleanup-update\/"},"modified":"2019-02-18T13:24:54","modified_gmt":"2019-02-18T20:24:54","slug":"monad-cmdlet-cleanup-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/monad-cmdlet-cleanup-update\/","title":{"rendered":"Monad cmdlet cleanup update"},"content":{"rendered":"<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>As Jeff<font color=\"navy\"><span>re<\/span><\/font>y mentioned in an earlier Blog \u201c<b><span>Finding which parameters are used the most<\/span><\/b>\u201d The Monad team is in the process of cleaning up our cmdlets to <\/span><\/font><font face=\"Arial\" size=\"2\"><span lang=\"DE\">promote a more consistent user experience<\/span><\/font><font face=\"Arial\" size=\"2\"><span>. The following two areas which we are focused on might have impact on you:<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Cmdlet Verb names consistency and Parameters naming consistency.<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font><b><font face=\"Arial\" size=\"2\"><span>Cmdlet Verb names consistency<\/span><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>The changes we are introducing might cause you to have to modify many of your existing scripts and possibly some code. Among the changes that will have direct effect on you are the cmdlet verb names changes which are as follows:<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Symbol\" size=\"2\"><span><span>\u00b7<font face=\"Times New Roman\" size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/font><\/span><\/span><\/font><span dir=\"ltr\"><font face=\"Arial\" size=\"2\"><span>Combine-Path will be renamed to Join-Path<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Symbol\" size=\"2\"><span><span>\u00b7<font face=\"Times New Roman\" size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/font><\/span><\/span><\/font><span dir=\"ltr\"><font face=\"Arial\" size=\"2\"><span>Parse-Path will be renamed to Split-Path<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Symbol\" size=\"2\"><span><span>\u00b7<font face=\"Times New Roman\" size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/font><\/span><\/span><\/font><span dir=\"ltr\"><font face=\"Arial\" size=\"2\"><span>Match-String will be renamed to Select-String<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Symbol\" size=\"2\"><span><span>\u00b7<font face=\"Times New Roman\" size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/font><\/span><\/span><\/font><span dir=\"ltr\"><font face=\"Arial\" size=\"2\"><span>Time-Expression will be renamed to Measure-Command<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Symbol\" size=\"2\"><span><span>\u00b7<font face=\"Times New Roman\" size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/font><\/span><\/span><\/font><span dir=\"ltr\"><font face=\"Arial\" size=\"2\"><span>Write-Object will be renamed to Write-Output<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\">\n<p class=\"MsoNormal\"><span><span class=\"647563300-07022006\"><font color=\"#ff0000\"><\/font><\/span><\/span><\/p>\n<p><font face=\"Arial\" size=\"2\"><span>&nbsp;<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>This change will ensure Monad core cmdlets conform with the verb naming guidelines described in the Monad SDK.<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>&nbsp;<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span>Parameters naming consistency<\/span><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>We are still in the process of implementing this cleanup phase and no concrete details are available as of yet to be publicly announced. The following shows a sample for some of the guidelines we will be using to complete this cleanup phase:<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><b><u><font face=\"Arial\" size=\"2\"><span>Issue<\/span><\/font><\/u><\/b><\/p>\n<p class=\"MsoNormal\"><span>If a parameter has the same name across cmdlets, it should have the same type and semantics.&nbsp;You should use the same parameter name for the same concepts.<font color=\"#0000ff\"><span class=\"647563300-07022006\">&nbsp;<\/span><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#0000ff\"><span class=\"647563300-07022006\"><\/span><\/font><\/span><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b>&nbsp;<\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span>For example:<\/span><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Match-String and Tee-Object cmdlets should use a \u2013Path parameter aliased to MshPath instead of \u2013FileName to have a consistent user experience across the different cmdlets.<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Parameter names should be verbose and allow you to easily disambiguate them by simply typing the first three characters or using aliases.<\/span><\/font><font face=\"Courier\" size=\"2\"><span> <\/span><\/font><font face=\"Arial\" size=\"2\"><span>You only have to provide enough of a parameter name to disambiguate it but you can also use parameter aliases. We must use parameter aliases when parameters cannot be disambiguated easily using the first three characters.<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b>&nbsp;<\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span>For example:<\/span><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b>&nbsp;<\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b><font face=\"Arial\" size=\"2\"><span>-OutBuffer (-ob) and -OutVariable (-ov)<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font><font face=\"Arial\" size=\"2\"><span><span>Both OutBuffer and OutVariable start with \u201cout\u201d which can only be disambiguated when more then the first three characters are used. The \u2013ob and \u2013ov parameter aliases resolve this issue<\/span><\/span><\/font><\/p>\n<p class=\"MsoNormal\"><b><font face=\"Arial\" size=\"2\"><span><\/span><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>This posting is simply a heads-up on what will possibly be in the next release. Any thoughts or feedback is appreciated.<\/span><\/font><\/p>\n<\/p>\n<p>[<i>Edit: Monad has now been renamed to Windows PowerShell.  This script or discussion may require slight adjustments before it applies directly to newer builds.<\/i>]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As Jeffrey mentioned in an earlier Blog \u201cFinding which parameters are used the most\u201d The Monad team is in the process of cleaning up our cmdlets to promote a more consistent user experience. The following two areas which we are focused on might have impact on you: &nbsp; Cmdlet Verb names consistency and Parameters naming [&hellip;]<\/p>\n","protected":false},"author":600,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"acf":[],"blog_post_summary":"<p>As Jeffrey mentioned in an earlier Blog \u201cFinding which parameters are used the most\u201d The Monad team is in the process of cleaning up our cmdlets to promote a more consistent user experience. The following two areas which we are focused on might have impact on you: &nbsp; Cmdlet Verb names consistency and Parameters naming [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/10561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=10561"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/10561\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=10561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=10561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=10561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}