当前位置: 首页 > 编程笔记 >

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

时同
2023-03-14
本文向大家介绍PowerShell中对函数参数的命名建议,包括了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函数的参数应该怎样命名,本文就介绍这么多,希望对您有所帮助,谢谢!

 类似资料:
  • 我正在用PowerShell编写一个脚本,在某个时候我需要在函数参数上使用ValidateSet。这是一个非常好的功能,但我需要的是更多的东西。 例如: 因此,此代码段允许我从列表中选择一个项目,如 然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给来自一个验证集的函数,如下所示 也许有一个图书馆,或者我只是错过了一些东西,但我真的找不到一个解决方案。

  • 问题内容: 有没有办法保留解构函数参数的名称?即,根对象的名称? 在ES5中,我可以这样做(使用继承作为隐喻来说明这一点): 我正在使用同一个对象来保存多个配置参数。某些参数由父类使用,而某些参数由子类使用。 有没有办法用ES6中的结构化函数参数来做到这一点? 还是我需要提取所有选项,以便可以将它们分别传递给? 问题答案: 我本人在太多地方都有“选项”论据。我会选择1行额外的代码。在此示例中不值得

  • 无论出于什么原因,当我试图调用我正在编写的C#程序时,我试图在命令行中用“--”传递两个参数,PowerShell不会用我的命令行调用该程序。 例如,我提供命令行: 为什么会这样? 顺便说一句,如果我把它叫做: 它像预期的那样工作。 似乎没有帮助。 我之所以认为这是PowerShell的怪异之处,是因为如果我从cmd.exe运行相同的命令行,一切都会像预期的那样工作。

  • 问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:

  • 本文向大家介绍PowerShell函数中把参数传入另一个函数的函数传参例子,包括了PowerShell函数中把参数传入另一个函数的函数传参例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,可以使用@PSBoundParameters来将参数传递给另一函数。 下面,我们来创建一个Get-BIOS的函数, 在这个函数中,我们并没有作任何实际的操作,只是将输入的参

  • 我当前正在尝试使用脚本列出远程计算机上已安装的程序。 我不仅要捕获远程程序列表,而且要捕获一个系统直接向前的版本。 但是,当我在多个系统中循环时,就会完全丢失和字段。