カスタム関数を定義したい .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
ドット演算子はスクリプトインクルードに使用され、別名「ドットソース」(または「ドットソース表記」)