PowerShell で、ファイル内に関数を定義し、PowerShell コマンドラインから呼び出すにはどうすればよいでしょうか? 質問する

PowerShell で、ファイル内に関数を定義し、PowerShell コマンドラインから呼び出すにはどうすればよいでしょうか? 質問する

カスタム関数を定義したい .ps1 ファイルがあります。

ファイル名が MyFunctions.ps1 で、内容が次のようになっているとします。

Write-Host "Installing functions"
function A1
{
    Write-Host "A1 is running!"
}
Write-Host "Done"

このスクリプトを実行し、理論的には A1 関数を登録するには、.ps1 ファイルが存在するフォルダーに移動して、ファイルを実行します。

.\MyFunctions.ps1

出力は次のようになります:

Installing functions
Done

しかし、A1 を呼び出そうとすると、その名前のコマンド/関数が存在しないというエラーが表示されます。

The term 'A1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling
 of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:3
+ A1 <<<<
    + CategoryInfo          : ObjectNotFound: (A1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PowerShell の概念を誤解しているようです。スクリプト ファイルで関数を定義することはできないのでしょうか?

実行ポリシーはすでに「RemoteSigned」に設定されています。また、ファイル名の前にドットを使用して .ps1 ファイルを実行することもわかっています: .\ myFile.ps1

ベストアンサー1

PowerShell コマンド ラインでこれを試してください:

. .\MyFunctions.ps1
A1

ドット演算子はスクリプトインクルードに使用され、別名「ドットソース」(または「ドットソース表記」

おすすめ記事