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 }
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
关于PowerShell函数的参数应该怎样命名,本文就介绍这么多,希望对您有所帮助,谢谢!
我正在用PowerShell编写一个脚本,在某个时候我需要在函数参数上使用ValidateSet。这是一个非常好的功能,但我需要的是更多的东西。 例如: 因此,此代码段允许我从列表中选择一个项目,如 然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给来自一个验证集的函数,如下所示 也许有一个图书馆,或者我只是错过了一些东西,但我真的找不到一个解决方案。
问题内容: 有没有办法保留解构函数参数的名称?即,根对象的名称? 在ES5中,我可以这样做(使用继承作为隐喻来说明这一点): 我正在使用同一个对象来保存多个配置参数。某些参数由父类使用,而某些参数由子类使用。 有没有办法用ES6中的结构化函数参数来做到这一点? 还是我需要提取所有选项,以便可以将它们分别传递给? 问题答案: 我本人在太多地方都有“选项”论据。我会选择1行额外的代码。在此示例中不值得
无论出于什么原因,当我试图调用我正在编写的C#程序时,我试图在命令行中用“--”传递两个参数,PowerShell不会用我的命令行调用该程序。 例如,我提供命令行: 为什么会这样? 顺便说一句,如果我把它叫做: 它像预期的那样工作。 似乎没有帮助。 我之所以认为这是PowerShell的怪异之处,是因为如果我从cmd.exe运行相同的命令行,一切都会像预期的那样工作。
本文向大家介绍PowerShell函数中把参数传入另一个函数的函数传参例子,包括了PowerShell函数中把参数传入另一个函数的函数传参例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,可以使用@PSBoundParameters来将参数传递给另一函数。 下面,我们来创建一个Get-BIOS的函数, 在这个函数中,我们并没有作任何实际的操作,只是将输入的参
问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:
我当前正在尝试使用脚本列出远程计算机上已安装的程序。 我不仅要捕获远程程序列表,而且要捕获一个系统直接向前的版本。 但是,当我在多个系统中循环时,就会完全丢失和字段。