6

PowerShellコマンドレットヘルプファイルを生成するためのユーティリティを知っている人はいますか?手でそれをすることは少し退屈なようです...

私が見つけた場所:http://blogs.msdn.com/powershell/archive/2007/09/01/new-and-improved-cmdlet-help-editor-tool.aspx

更新されたバージョンはありますか?モジュールを選択できません。バイナリモジュールがあります。

4

5 に答える 5

4

モジュールの一部であるかどうかに関係なく、コマンドレットと関数のMAMLを生成するPowershellスクリプトを作成しました。生成されたMAMLは手動で編集する必要があるため、完全ではありませんが、参照したコマンドレットヘルプエディターも同様です。ここにそれについてのブログ投稿があります

これを使用して修正を見つけた場合は、PoshCodeのスクリプトを自由に更新してください。

于 2010-03-03T12:36:58.310 に答える
1

モジュールを文書化する必要がありましたが、独自のMAMLヘルプビルダーを作成するよりも良い解決策は見つかりませんでした。ここにあります: https ://github.com/nightroman/Helps

このモジュールは、PowerShellヘルプスクリプトからPowerShellMAMLヘルプファイルを作成します。ヘルプスクリプトはほとんどWYSIWYGであり、結果のヘルプと非常によく似ています。それでも、これらは単なるスクリプトであり、これにより多くの便利な機能が簡単になります。それらの1つは、いくつかのカルチャのヘルプファイルを作成することです。

コマンド(コマンドレット、関数、スクリプト)およびプロバイダーのヘルプデータのテンプレートは次のとおりです。

### Command help data

@{
    command = 'Name'
    synopsis = '...'
    description = '...'
    sets = @{
        Set1 = '...'
        #...
    }
    parameters = @{
        Param1 = '...'
        #...
    }
    inputs = @(
        @{
            type = '...'
            description = '...'
        }
        #...
    )
    outputs = @(
        @{
            type = '...'
            description = '...'
        }
        #...
    )
    notes = '...'
    examples = @(
        @{
            title = '...'
            introduction = '...'
            code = {
            }
            remarks = '...'
            test = {
                . $args[0]
            }
        }
        #...
    )
    links = @(
        @{
            text = '...'
            URI = '...'
        }
        #...
    )
}

### Provider help data

@{
    provider = 'Name'
    drives = '...'
    synopsis = '...'
    description = '...'
    capabilities = '...'
    tasks = @(
        @{
            title = '...'
            description = '...'
            examples = @(
                @{
                    title = '...'
                    introduction = '...'
                    code = {
                    }
                    remarks = '...'
                    test = {
                        . $args[0]
                    }
                }
            )
        }
        #...
    )
    parameters = @(
        @{
            name = '...'
            type = '...'
            description = '...'
            cmdlets = '...'
            values = @(
                @{
                    value = '...'
                    description = '...'
                }
                #...
            )
        }
        #...
    )
    notes = '...'
    links = @(
        @{
            text = '...'
            URI = '...'
        }
        #...
    )
}
于 2011-08-04T18:21:44.487 に答える
1

オープンソースのXmlDoc2CmdletDocの登場により、バイナリPowerShellコマンドレット(つまり、C#で記述されたもの)を他のC#ライブラリと同じように、またスクリプト化されたコマンドレット(PowerShellで記述されたもの)と同じように文書化できるようになりました。インラインの文書コメントを使用してください。

並列MAMLファイルを手動で管理する必要はもうありません。C#プロジェクトを再コンパイルすると、ドキュメントジェネレーターが実行され、両方のモジュールが取得されるように、ビルドをインストルメント化するだけです。dllモジュールdll-Help.xml。後者は、PowerShellによって直接使用され、を呼び出したときにコマンドレットのヘルプを提供しますGet-Help

また、XmlDoc2CmdletDocには-strict、コマンドレットを包括的に文書化するためのスイッチも用意されています。スイッチを使用して何かを見逃した場合、ビルドは失敗します。

XmlDoc2CmdletDocによって自動的に提供されるその他の利点(このリストの「セクション」は、によって提示されるヘルプのセクションを指しますGet-Help):

  • [出力]セクションの各カスタムタイプには、説明が含まれています。
  • 構文セクションには、列挙型の可能な値が含まれています。
  • パラメーター」セクションには、列挙型の可能な値が含まれています。
  • エイリアスは、パラメータセクションに自動的に文書化されます。
  • エイリアスはファーストクラスのパラメータとして扱われるため、エイリアスに関するヘルプを求めることができます。
  • オプションで、「パラメーター」セクションの場合とは異なり、「入力」セクションのパラメーターに異なる説明を使用できます。
  • Webリンクは、ライブリンクへの後処理が可能なように、マークダウン形式で自動的にレンダリングされます。(この機能拡張は保留中です。)

私はこのオープンソースユーティリティがとても気に入り、貢献し始め、上記の利点のいくつかを提供しました。また、Simple-Talk.comで公開された、PowerShellバイナリコマンドレットのドキュメント化というタイトルの包括的なガイドを作成しました。

于 2015-12-10T22:38:21.260 に答える
0

私はドキュメントをsnapin/module C#コードに埋め込む方法を検討してきましたが、PoshBuildは私の最良のオプションのように見え始めています。一部のドキュメント要素(概要や例など)を含める方法はありませんが、それでも適切なオプションです。

于 2011-09-02T17:37:52.740 に答える
0

XML PowerShellヘルプ(PSMAML)を編集するためのグラフィカルツールに関しては、次のものを使用できます。

于 2015-11-21T10:54:35.500 に答える