選択肢は次のとおりです。
1)ファイルと呼ばれるもので関数を含むスクリプト、およびそれを呼び出すコードを書く - ここでは 'testing.ps1を':
Function Display-HelloWorld
{
cls
Write-Host "Hello World"
}
Display-HelloWorld
# run it
PS C:\test> .\testing.ps1
Hello World
# After it runs, the contents of the script are 'gone' from the current session.
2)関数コンテンツをfunctionname.ps1
というファイルに入れます。関数としてスクリプト自体を扱う:
cls
Write-Host "Hello World"
# run it, pretending the file is a function
PS C:\test> .\Display-HelloWorld.ps1
Hello World
3)任意の名前でファイル内の関数のコードを入れてください:
Function Display-HelloWorld
{
cls
Write-Host "Hello World"
}
# dot source or Import-Module the code, to load the file contents ready for use
PS C:\test> Import-Module .\testing.ps1
# Call the function, loaded from the file
PS C:\test> Display-HelloWorld
Hello World
あなたがそれらを混合している - あなたがファイルにfunction xyz
を入れたときに、ファイルを実行すると、スクリプトとして実行されます。関数が定義されています。何もそれを呼びません。機能はメモリから削除されます。ファイルを実行してパラメータを渡すと、ファイル自体が関数であるかのように、文字列パラメータとして 'Display-HelloWorld'をファイルに渡して、Mike Shepardが言うように2)のようになります。パラメータを受け入れるブロックはparam()
ではありませんので、何もしません。
エリック、私はfuncitionを呼び出しています。私のポストを読んでください。ファイル名と機能 – Jason