2016-12-16 7 views
1

PowerShellを起動するたびに読み込まれる私の個人的なPowerShellプロファイルには、関数を呼び出すことによって一連の関数を含める必要があります。PowerShellの機能をオンデマンドでロードする方法は?

だから私はこのような何かやりたい:

function bobtest{ 
    write-host "My name is Bob Newhart." 
} 

私は、スクリプトMyFunctions.ps1をロードすることができていますが、その後:今

function loadMyFunctions{ 
    . \MyFunctions.ps1 
} 

を、MyFunctions.ps1に私は機能を持っていますコンソールにbobtestを呼び出すことができません - エラーメッセージが表示されますThe term bobtest is not recognized...

ただし、そのスクリプトがロードされ、私は通常bobtestと呼ぶことができますが、それはプロファイルがロードされたときにMyFunctionsをロードできないことを意味します - MyFunctionsをロードするを持っています。

私は、必要に応じて他の機能を読み込み、選択するまで利用できないようにしたいと思います。

これを行う別の方法はありますか、それとも実行することはできますか?

+0

これは興味深いことです。私はモジュールについて簡単に考えて、それを忘れました。 – bgmCoder

+0

申し訳ありませんが、誤ってそのコメントを削除しました。モジュールはかなり良い方法です!私は過去に関数を使うのではなく、それらを使いました。決してそれらに問題があった。プロファイルを使用して、内部に他の機能を持つモジュールを呼び出します。以前の回答を削除しましたが、私は質問を間違って解釈することに同意します。 –

答えて

3

このpage、「PowerShellモジュールとマニフェストの作成方法」をご覧ください。

これにより、すべてのカスタム機能を持つモジュールを作成することができます。 loadMyFunctionsコマンドレットの中にImport-Module NewModuleNameを追加します。

これにより、コマンドレットを使用できます。このことができます

希望、 ラクラン

+0

これは完璧に動作し、私が探していたものです。 – bgmCoder

+0

親切にも、助けてくれること –

1

最善の方法は、モジュールを使用することです。しかし、まだいくつかの方法で取得したい場合は、あなたのアプローチを試すことができます。

私が行った以下のスクリーンショットをご覧ください。

私は単に追加を行い、私は今、私はちょうどとして使用せずにドットソースを使用して、他のスクリプトの別の関数から同じ関数を呼び出していますfunct1.ps1

としてそれを保存する機能加えを持っていますモジュールとそれは私に適切に結果。

Funct1.ps1

enter image description here

別のスクリプト内の別の関数からの関数をトリガ。

enter image description here

は、それがお役に立てば幸いです...!

+0

それは合理的なアプローチです。私は関数がスクリプトを点描してその関数を使うことができることを知っていますが、私が本当に望んでいたのは、スクリプトを選択してオンザフライで「インクルード」する方法でした。 – bgmCoder

関連する問題