【问题标题】:What are good guidelines for naming PowerShell verbs?命名 PowerShell 动词的良好准则是什么?
【发布时间】:2023-03-11 06:15:01
【问题描述】:

我刚开始学习 PowerShell,我想知道是否有一些关于 Posh 中用于 cmdlet(或高级函数,无论它们在 CTP3 中称为什么)的动词的良好指南。

如果我做一个 get-verb,我可以看到很多。但我仍然不确定我应该如何布置我的模块。

这是我现在遇到的示例。我有一个小脚本询问 Perforce:如果我要同步,哪些文件会改变,它们有多大?它会输出大小摘要和文件夹的迷你树,其中包含更改将发生的位置(以及需要解决的数量)。

这是一个查询-p4sync 吗?还是'sync-p4 -whatif'?还是别的什么?

在我开始编写大量此类脚本之前,我想确保我正确命名它们。

【问题讨论】:

    标签: powershell naming


    【解决方案1】:

    您可以在 MSDN 上找到 list of common verbs 以及它们的用途说明。

    【讨论】:

    • 但是请注意,它似乎仍然是初步的。例如,动词 Ping 应该用在 Test 上,用于确定某物是否存在并做出响应。但是,PS 2 的当前 CTP 包含一个 Test-Connection cmdlet(相当于 ping),根据这些指南命名错误。
    【解决方案2】:

    这是截至 7 月 15 日在 Windows PowerShell 博客上更新的 list of approved verbs

    【讨论】:

      【解决方案3】:

      根据您对“模块”一词的使用,我猜您使用的是 PowerShell V2,它允许您利用 Advanced Functions

      高级函数提供了一种方法来为您的函数提供对 -WhatIf 和 -Confirm 的原生支持

      function Sync-PerforceRepository()
      {
        [cmdletbinding(SupportShouldProcess=$true)]
        param (...) #add your parameters
        Begin
        {
          #setup code here
        }
        Process
        {
          if ($pscmdlet.ShouldProcess($ObjectBeingProcessed,"String Describing Action Happening")
          {
            #Process logic here
          }
        }
        End
        {
           #Cleanup code
        }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        相关资源
        最近更新 更多