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

所属分类: 脚本专栏 / PowerShell 阅读数: 1117
收藏 0 赞 0 分享

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函数的参数应该怎样命名,本文就介绍这么多,希望对您有所帮助,谢谢!

更多精彩内容其他人还在看

使用HTTP api简单的远程执行PowerShell脚本

为了你能非常简单的远程执行PoweShell脚本,使用REST API是一个很好的选择,因为现在许多流行的编程语言都可以简单的执行HTTP的GET操作。
收藏 0 赞 0 分享

Powershell小技巧之使用WS-Man来调用PowerShell命令

大多Windows系统的管理员应当已经意识到在Windows系统上进行脚本开发和命令行管理,PowerShell首当其冲。微软许多产品和一些第三方产品都提供了Windows PowerShell的管理接口。但是目前PowerShell只能运行在Windows系统上,如何才能在非W
收藏 0 赞 0 分享

Windows Powershell For 循环

这篇文章主要介绍了Windows Powershell For 循环的定义、用法以及示例,非常简单实用,有需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell Switch 循环

这篇文章主要介绍了Windows Powershell Switch 循环以及PowerShell中数组可以与switch语句结合,产生意想不到的效果。
收藏 0 赞 0 分享

Windows Powershell 定义函数

这篇文章主要介绍了Windows Powershell 定义函数,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell实现导入安装证书功能脚本分享

这篇文章主要介绍了Powershell实现导入安装证书功能脚本分享,本文用编程方法实现把pfx证书文件导入到指定的库中,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell改变脚本执行优先权的代码分享

这篇文章主要介绍了Powershell改变脚本执行优先权的代码分享,本文通过控制进程的方式调整程序的执行顺序,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell读取PFX证书并输入密码的脚本分享

这篇文章主要介绍了Powershell读取PFX证书并输入密码的脚本分享,本文实现直接用脚本输入密码,避免了手动输入密码的麻烦,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell访问SQL Server数据库代码实例

这篇文章主要介绍了Powershell访问SQL Server数据库代码实例,本文直接给出代码,使用时只需要替换数据库配置参数即可,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell打印文本文档例子

这篇文章主要介绍了Powershell打印文本文档例子,本文相对简单,默认给出的是打印系统日志文件,使用时要替换成自己想打印的文件,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多