PowerShell中对函数参数的命名建议

PowerShell自定义函数的参数没有具体的命名规则,那么怎么做才能让参数的命名更加科学可持续。

我们应该怎么来命名函数的参数名称呢?有没有一个可供参考的列表?当然微软没有给出来。但是我们可以来理一个列表出来。微软自带了大量的cmdlet,这些cmdlet使用的参数有什么规律呢?我们用下面一段命令来统计一下。

代码如下:

Get-Command -CommandType Cmdlet |
ForEach-Object { $_.Parameters } |
ForEach-Object { $_.Keys } |
Group-Object -NoElement |
Sort-Object Count, Name -Descending |
Select-Object -Skip 11 |
Where-Object { $_.Count -gt 1 }

这段代码的作用就是把所有的cmdlet使用的参数名称来做一个统计,看看哪些名称的参数用得比较多,然后按从多到少的顺序做一个列表。小编这边运行后的结果如下:

代码如下:

Count Name
----- ----
   69 Force
   56 InputObject
   53 Credential
   52 Path
   48 PassThru
   43 LiteralPath
   35 UseTransaction
   33 Exclude
   32 Include
   30 ComputerName
   28 Filter
   26 Id
   14 Scope
   14 Property
   14 InstanceId
   13 Value
   13 Authentication
   12 ThrottleLimit
   12 Description
   12 ArgumentList
   10 Session
   10 Encoding
    9 SourceIdentifier
    8 Wait
    8 Namespace
    8 DisplayName
    8 CertificateThumbprint
    8 AsJob
    7 UseSSL
    7 Stream
    7 State
    7 Port
    7 NoClobber
    7 Impersonation
    7 FilePath
    6 TypeName
    6 Timeout
    6 SessionOption
    6 Option
    6 Module
    6 Message
    6 LogName
    6 Job
    6 ConnectionUri
    6 ConfigurationName
    6 Command
    6 Class
    6 ApplicationName
    6 AllowRedirection
    5 View
    5 Variable
    5 Source
    5 Recurse
    5 PSProvider
    5 Delimiter
    4 UseDefaultCredentials
    4 UseCulture
    4 UICulture
    4 StackName
    4 ShowError
    4 NewName
    4 MessageData
    4 Locale
    4 GroupBy
    4 Expand
    4 EnableAllPrivileges
    4 DisplayError
    4 Destination
    4 Depth
    4 Culture
    4 Count
    4 Certificate
    4 Category
    4 CaseSensitive
    4 Body
    4 Authority
    4 Append
    4 Action
    3 Width
    3 Uri
    3 SupportEvent
    3 Server
    3 SecurityDescriptorSddl
    3 ScriptBlock
    3 Restart
    3 PSVersion
    3 ProxyCredential
    3 OutputBufferingMode
    3 NoTypeInformation
    3 NoServiceRestart
    3 Newest
    3 ModulesToImport
    3 MemberType
    3 MaxTriggerCount
    3 MaximumRedirection
    3 LocalCredential
    3 List
    3 Function
    3 Forward
    3 EnableNetworkAccess
    3 CommandType
    3 Cmdlet
    3 Breakpoint
    3 AsString
    3 AssemblyName
    3 As
    2 WebSession
    2 Visibility
    2 Verb
    2 UseSharedProcess
    2 UserAgent
    2 UnjoinDomainCredential
    2 Unique
    2 TypesToProcess
    2 TypeData
    2 Type
    2 TransportOption
    2 TransferEncoding
    2 TotalCount
    2 Title
    2 TimeoutSec
    2 ThreadOptions
    2 ThreadApartmentState
    2 SubscriptionId
    2 Strict
    2 Status
    2 StartupType
    2 StartupScript
    2 SkipNetworkProfileCheck
    2 Skip
    2 ShowSecurityDescriptorUI
    2 SessionVariable
    2 SessionTypeOption
    2 SessionType
    2 SecondValue
    2 Seconds
    2 ScriptsToProcess
    2 Script
    2 RunAsCredential
    2 RestorePoint
    2 Resolve
    2 Quiet
    2 Query
    2 PSSession
    2 PSHost
    2 ProxyUseDefaultCredent...
    2 Proxy
    2 ProcessorArchitecture
    2 PrependPath
    2 Prefix
    2 PowerShellVersion
    2 OutFile
    2 Off
    2 NotMatch
    2 ModuleInfo
    2 Minimum
    2 Method
    2 MemberName
    2 MaximumReceivedObjectS...
    2 MaximumReceivedDataSiz...
    2 Maximum
    2 LiteralName
    2 ListenerOption
    2 Line
    2 JobName
    2 InFile
    2 Index
    2 IdleTimeoutSec
    2 Headers
    2 Header
    2 Guid
    2 FormatTypeName
    2 FormatsToProcess
    2 First
    2 Expression
    2 EventIdentifier
    2 EntryType
    2 End
    2 Drive
    2 DisplayHint
    2 DisableNameChecking
    2 DisableKeepAlive
    2 Delay
    2 Debugger
    2 Date
    2 Copyright
    2 ContentType
    2 ConfigurationTypeName
    2 CompanyName
    2 CommandName
    2 Column
    2 CimSession
    2 CimResourceUri
    2 CimNamespace
    2 CanonicalName
    2 Before
    2 AutoSize
    2 Author
    2 AsCustomObject
    2 ApplicationBase
    2 AppendPath
    2 AllowClobber
    2 All
    2 Alias
    2 After
    2 AccessMode

好了,看到这个列表,我相信大家对如何设置一个参数名称有了一定的了解了。参照这个列表上的名称,或者就使用这个列表上的名称,让你的cmdlet对更易懂!

关于PowerShell函数的参数应该怎样命名,本文就介绍这么多,希望对您有所帮助,谢谢!

(0)

相关推荐

  • PowerShell使用枚举变量定义带智能提示功能的函数参数

    本文介绍在自定义PowerShell函数时,如何设置函数可以使用枚举变量智能提示参数值.枚举类型可以是.NET框架下的系统枚举类型. 在PowerShell 3.0版本中,出现了一项新的功能,那就是参数值的智能提示.当然,不是随便在哪里都会智能提示参数值,而是只能在ISE中.当然,所谓的ISE就是PowerShell自带的一个集成开发环境. 本文要介绍的是,使用系统自带的枚举变量来作为智能提示的列举选项. 我们把之前的Select-Color再拿出来看看, 复制代码 代码如下: function

  • PowerShell函数参数设置成自动识别数据类型的例子

    本文介绍PowerShell自定义函数中使用参数集时,怎么设置系统自动识别参数的数据类型. 识别参数类型的一个好处就是,在使用参数集时,不需要每次都指定参数名称了. 请看下面这个Test-Binding函数.这个PowerShell函数在设置参数集的时候,为参数集中的第一个参数设置了数据类型,这样在调用函数时,就可以自动判断一个参数值它应该赋给哪个参数了. 复制代码 代码如下: function Test-Binding {     [CmdletBinding(DefaultParameter

  • PowerShell中给函数参数设置帮助信息的例子

    本文介绍在PowerShell创建自定义函数时,如何为必选参数设置帮助信息. 下面这段代码,我们创建了一个test-function的函数.这个函数有一个参数p,它是必选参数.更进一步,我们为这个参数$p设置了一个helpMessage属性,这个属性的意思就是为这个必须参数提供帮助信息.因为是必选参数,所以在不输入值的情况下,函数是不会执行,而会提示为参数输入值的.如果用户不知道应该为这个参数输入什么值,那么这个HelpMessage有可能帮到忙. 复制代码 代码如下: PS C:\Users\

  • PowerShell函数参数用星号隐藏的方法

    本文介绍在PowerShell中创建函数时,如何让函数的参数输入值的时候自动变成星号. 什么叫自动变成星号呢?举个例子,我们在登录一个邮箱时,输入用户时看到的是明文的,但我们在输入密码时,看到的是一个个增加的星号.在使用PowerShell自定义函数时,如何设置才能让输入密码之类的参数时,自己用星号掩盖呢?且往下看. 复制代码 代码如下: function Test-Password {     param     (     [Parameter(Mandatory=$true)]     $

  • PowerShell函数参数设置为即可选又必选的方法

    本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选. 好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦. 在PowerShell中,我们有可能有这样的需求,如果只需要输入某个参数时,这个参数是可选的.但如果还要输入别的参数,那这个参数就变成必选的了.那么这种需求如何来满足呢?那就是本文的意义所在了. 复制代码 代码如下: function Connect-Somewhere {     [CmdletBinding(DefaultP

  • PowerShell函数参数指定数据类型实例

    本文介绍在PowerShell创建自定义函数时,为必选参数设置强类型有什么好处,应该如何设置. 为了提高必选参数的安全性,PowerShell函数定义的最佳实践告诉我们,要为必选参数设置强类型.这是为什么呢,我们来看一个例子. 复制代码 代码如下: function Test-Me {     param     (         [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]         $Euro  

  • PowerShell定义函数参数的2种方法和传参方法实例

    本文介绍PowerShell自定义函数定义参数的两种方法,一种是将参数列表放到函数名之后,就跟其它语言定义函数参数一样:另一种则是PowerShell独有的方式,那就是使用param关键词. 先来看看第一种定义参数的方式--将参数列表放到函数名之后 举个例子先看看: 复制代码 代码如下: function Test-Function($参数名1='默认参数值1', $参数名2='默认参数值2') {     Write-Host "参数1=$参数名1,参数2=$参数名2"; } 这种方

  • PowerShell函数参数使用智能提示功能例子

    本文介绍在自定义PowerShell函数时,如何设置函数可以智能提示参数值.参数值的智能提示这个功能是在PowerShell 3.0中出现的新功能. 在PowerShell 3.0版本中,出现了一项新的功能,那就是参数值的智能提示.当然,不是随便在哪里都会智能提示参数值,而是只能在ISE中.当然,所谓的ISE就是PowerShell自带的一个集成开发环境. 那么,我们自己在开发一个PowerShell函数时,我们应该怎么设置才能让我们的函数在ISE中也能智能提示参数的值呢?看看下面这个例子. 复

  • PowerShell中对函数参数的命名建议

    PowerShell自定义函数的参数没有具体的命名规则,那么怎么做才能让参数的命名更加科学可持续. 我们应该怎么来命名函数的参数名称呢?有没有一个可供参考的列表?当然微软没有给出来.但是我们可以来理一个列表出来.微软自带了大量的cmdlet,这些cmdlet使用的参数有什么规律呢?我们用下面一段命令来统计一下. 复制代码 代码如下: Get-Command -CommandType Cmdlet | ForEach-Object { $_.Parameters } | ForEach-Objec

  • Python中的函数参数(位置参数、默认参数、可变参数)

    目录 一.位置参数 二.默认参数 三.可变参数 四.关键字参数 五.命名关键字参数 六.各种参数之间的组合 函数的参数:Python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广泛:不但使得函数能够处理复杂多变的参数,还能简化函数的调用. Python中的函数参数有如下几种:位置参数.默认参数.可变参数.关键字参数和命名关键字参数 一.位置参数 位置参数(positional arguments)就是其他语言的参数,其他语言没有分参数的种类是因为只有这一种参数, 所有参数都遵循

  • OpenCV中findContours函数参数详解

    注: 这篇文章用的OpenCV版本是2.4.10, 3以上的OpenCV版本相关函数可能有改动 Opencv中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便.这些准备继续探讨一下findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据结构是怎样的?hierarchy到底是什么鬼?Point()有什么用? 先从findContours函数原型看起: findContours( InputOutputArray

  • PowerShell中的函数重载示例

    在PowerShell中,我们可以使用Function关键字来定义一个函数,比如: Function Get-Data { Param ( [int] $data = -1 ) return $data; } 这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回.那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C++之类的语言不同. 在PowerShell中定义重载函数,需要指定参数所属的Parameter Set,如下

  • PowerShell中prompt函数的妙用

    本文介绍PowerShell中的Prompt函数,并且通过Prompt函数来自定义PowerShell命令行界面的提示符. 在设计prompt函数之前,小编想把PowerShell命令行提示符改成zhanghong>,不知道可不可以.找来找去,找到了prompt这个函数.先来看看如下的一个函数定义: 复制代码 代码如下: function prompt{     "PS zhanghong> " } 这是一个非常普通的函数,没有什么实质性的不同.而且函数体里面的代码更是简单

  • Python中的函数参数类型检查

    目录 Python函数参数类型检查 下面我们用装饰器来实现 总结 Python函数参数类型检查 有一个很经典的笑话: 三个月之前,只有我和上帝知道这代码是干什么的. 现在,只有上帝知道了. 在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里. 我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动. 下面我们用装饰器来实现 函数参数的强制类型检查. 首先,这个装饰器,要接受类型参数,和指定函数参数的类型参数.也就

  • Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matplotlib.pyplot as plt #产生测试数据 x = np.arange(1,10) y = x fig = plt.figure() ax1 = fig.add_subplot

  • PowerShell中简单的自定义函数和调用函数例子

    在PowerShell中是否有函数?PowerShell是否可以自定义函数?PowerShell中如何自定义函数? 在PowerShell中,我们可以使用函数(function)来简化编程开发.在PowerShell中使用function这个关键词来标识一个函数.一个自定义的函数,由function关键词开始,然后用一对大括号来包括起整个函数体的内容. 我们先来看一下简单的PowerShell函数: 复制代码 代码如下: function Test-Function {     Write-Ho

随机推荐