0

その名のコードを示している、私はtest.ps1内の関数があるとし、以下のようなものです:PowerShellで&の中の関数を呼び出す方法は?

. "some_path\some_other_script.ps1" 

function show { 
    write-host "Hello World" 
    #some other function call from some_other_script.ps1 
    ... 
} 
私は(&に - 演算子を呼び出す)フォロー形式のショーを呼び出すことができますどのように

powershell.exe "& '%test_script_path%\test.ps1'\show" 

私は私が私が新しいスクリプトを作成し、新しいスクリプトではなく、中にショーにコードを置くことができます知っているsome_other_script.ps1

からショー機能の依存関係を取得するために、第1のソースtest.ps1ドットする必要があると思います機能。そうすれば、いつ& ...スクリプトが呼び出されますか。しかし、私はあなたがソースに点在し、このようにそれを呼び出すことができます任意の提案

答えて

2

のためだけの非常にシンプルな機能のために

おかげで新しいスクリプトを作成する必要はありません。

powershell -Command ". '%test_script_path%\toolsql.ps1'; show" 

;

は、コマンド間のセパレータとして使用されます。

+0

こんにちは、私はあなたの方法を試しましたが、 "show:用語は 'show'がコマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前として認識されません。パスが含まれていることを確認し、パスが正しいことを確認して、もう一度試してください。私はcmdではなくpowershellでスクリプトのソースを表示すると、showがスクリプトのbuecauseにあると確信しています。それは正常に実行されます。 – user1888955

+0

toolsql.ps1には表示されませんか?あなたの投稿をもう一度読んで、私はショーはtoolsqlではなくtest.ps1と呼ばれる別のファイルであると仮定していますか?もし 'powershell -Command 'と'%test_script_path%\ toolsql.ps1'; 'path \ to \ test.ps1'; show "' ' –

+0

Sorry @Patrick、私はタイプミスをしました。 IS IN test.ps1を表示します。私は投稿を更新しました。だから、基本的に、私はソースtest.ps1を最初に点けて、test.ps1でshowを実行したい。あなたの最初の方法がうまくいくことを期待していましたが、どういうわけか、それは... – user1888955

0

@Patrick Meineckeの助けを借りて、本当に感謝しています。次のコマンドが動作します。

powershell -command ". .\test.ps1;show" 

彼は「だから 。\ただ、それはそれはまだ他に必要なカレントディレクトリ にあります示していること。現在のコンテキストにスクリプトをロードするためにPowerShellを伝えるために説明するために、」 、チャットで述べたと同様

関連する問題