【问题标题】:Powershell script that extracts medadata from powershell script从 powershell 脚本中提取 medadata 的 Powershell 脚本
【发布时间】:2012-05-15 06:10:29
【问题描述】:

是否有人知道脚本或 powershell windows 实用程序,或 3rd 方实用程序、codeplex、poshcode 脚本、应用程序等,它们可以读取和扫描 powershell 脚本并详细说明哪些管理单元、提供程序、程序集、cmdlet、函数、等等等等,脚本需要执行。

谢谢。 鲍勃。

【问题讨论】:

    标签: powershell-2.0


    【解决方案1】:

    第一件事:不,我不知道这样的脚本/实用程序。

    不过,我怀疑您可以利用 Powershell 的自我解析功能取得相当大的进展。

    例如以下脚本:

    function test {}
    
    test
    
    $content = gc $args[0]
    [System.Management.Automation.PsParser]::Tokenize($content, [ref] $null) |
       ? { $_.Type -eq "Command" } | ft
    

    将自身作为参数产生以下输出:

    内容类型 起始长度 StartLine StartColumn EndLine EndColumn ------- ---- ----- ------ --------- ----------- -------- - -------- 测试命令 20 4 3 1 3 5 gc 命令 39 2 5 12 5 14 ?命令 127 1 6 76 6 77 英尺命令 157 2 6 106 6 108

    因此,“命令”类型至少包括函数和 cmdlet。您可以通过取消对这些标记的别名来进一步剖析这一点。

    这可能已经可以告诉您一些信息,但与您的 Powershell 脚本可能需要的详尽列表相去甚远。

    但至少在管理单元或模块的情况下,您可能需要一些魔法才能准确地知道缺少什么

    【讨论】:

    • pspaser 分词器。我忘记了。
    【解决方案2】:

    实际上,我们制作了以下几个实用程序:

    http://scriptcop.start-automating.com - 免费在线/可下载的 PowerShell 脚本静态分析 http://scriptcoverage.startautomating.com/ - Powershell 脚本的代码覆盖工具

    模块ShowUI (Get-ReferencedCommand) 中还有一个工具可以完全满足您的需求。它查看命令中使用的每个命令,以及它们使用的每个命令,以生成您必须包含的所有命令的列表。

    你像这样使用它:Get-ReferenedCommand -ScriptBlock { Start-MyCommand }

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2015-07-07
      • 2020-12-26
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多