PowerShell中的函数定义可以很简单的使用一个“function <函数名>{函数体}”的形式去定义。但微软推荐创建函数时遵循以下实践规则。

使用cmdlet的统一命令规则,即“动词-名词”的形式。如Write-Host,表示输出到主机。如果是获取一个列表,不要使用List作为动词,建议使用Get,如Get-ChildItem。名词部分用一个有意义的英文单词,记得使用单数,不要使用名词的复数形式。如果要列出网卡的一个函数,不要使用ListNetworkCards,而应该使用Get-NetworkCard。这就是关于函数命名的最佳实践。

假定你写一个Get-NetworkCard的函数,洪哥也写了同样一个。那是不是很难区分谁是谁写的?所以,微软建议在函数名的名词部分加上公司前缀,而不加公司前缀的函数,我们一般可以理解为微软发布的。这个公司前缀用编写的两到三个字母为宜,比如洪哥函数名可以命为Get-HGNetworkCard。这里洪哥的前缀用的HG,你的呢?

3、参数的命名要规范

参数要用有意义单词,不要使用-PC作为参数名,你可以用-ComputerName取而代之。如果有时候需要一个文件路径作为一个参数,不要使用-File,因为指代实在是太模糊了。可以使用-Path,这样更明确。虽然没有官方给出一个标准的参数命名的列表,但我们应该参照内置(built-in)的cmdlets所用的那些参数名称。这样其他人使用时才更容易理解,对不对?

4、可选参数

为可选参数定义一个默认值,这是一个很好的习惯。如果用户不管这个参数,那么这个参数也可以被处于已赋值状态。

5、必选参数

虽然PowerShell中不要求定义函数参数时必须指定数据类型,但最佳实践要求我们这样做。如果我们指定了类型,那么用户的输入将被强制转换为我们定义的数据类型,否则都会被当作字符串来对待。

6、写一些注释来作为帮助说明

一个段函数给其他人,没有注释说明,别人很难看懂。即便是自己,不加注释的代码,时间过得久了,也不一定保证能看得懂,对不?

关于PowerShell函数使用的最佳实践(Best Practices),本文就介绍这么多,希望对您有所帮助,谢谢!

03-15 18:11