PowerShellスクリプトを使用して複数のアクションを作成するように言われました。Apppoolの作成、SQLの更新、ファイルの編集などのアクション。
こんなにかさばるものを初めてスクリプトで書くつもりです。
だから私はそれらを書く前にベストプラクティスを知りたいです。
すべての関数を1つのファイルに書き込むのは良い習慣ですか?
私は少なくとも10個の関数を書く必要があると考えています。各関数に10行のコードがあると仮定します。
PowerShellスクリプトを使用して複数のアクションを作成するように言われました。Apppoolの作成、SQLの更新、ファイルの編集などのアクション。
こんなにかさばるものを初めてスクリプトで書くつもりです。
だから私はそれらを書く前にベストプラクティスを知りたいです。
すべての関数を1つのファイルに書き込むのは良い習慣ですか?
私は少なくとも10個の関数を書く必要があると考えています。各関数に10行のコードがあると仮定します。
モジュールについて考えてみましょう。最も単純な形式は、マニフェスト( )と、すべての関数、エイリアス、...モジュールのエクスポート(および内部ヘルパー)を含む.psd1
単一のスクリプトファイル( )です。.psm1
この場合、接続された複数の関数を1つのファイルに明確に配置しています。コードの多くがスクリプトモジュールにドットソースされているだけであっても、論理的には1つのエンティティにあります。
一方、パスでスクリプトを使用して事前にロードせずに実行すると、(質問に対するAdrianoのfunction
コメントに従って)1つの関数(ステートメントではなくスクリプトスコープで)をサポートする傾向があります。
したがって、「良い習慣」はありません。それはすべて、状況の詳細に依存します。
実用的であり、真実は行動から生まれ、言葉からではありません; O)
だから、始めから始めましょう:
1)やりたいことはインターネットのどこかに存在しますかEX PoshCode(もしそうならあなたはそれを適応させることができます)
2)関数について考えてください(それほど多くはありません)オブジェクト:コードを再利用します(疑似コードでアルゴリズムを記述します)
3)インターネットを使用して既存の機能を探します
4)すべての関数をメインコードと同じファイルに書き込んでテストします。このフェーズでは、既存の関数に追加または削除する新しい関数とパラメーターを見つけます。
5)コードをテストしたら、再利用可能な関数(およびそれらが依存する関数)を1つまたは複数のモジュールに配置します。
私の解決策は、後で機能を追加できるカスタムモジュールを作成することです。
このパスの下のフォルダのようmymodule.psm1
に、すべての機能を含む単一のファイルを保存できます。mymodule
$env:psmodulepath
次にadd-module mymodule
(または$profile
、コンソールが起動したときに準備ができるように、電話をかけてください)