在PowerShell中,如何在文件中定义函数并从PowerShell命令行调用它?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (377)

假设文件名为MyFunctions。PS1,内容如下:

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

可以运行这个:

.\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
提问于
用户回答回答于

在该文件夹中,创建一个名为MyFunctions的文件夹,并放置MyFunctions

完成后,打开PowerShell,并运行以下命令:

Get-Module -listavailable

如果您看到一个名为MyFunctions的程序,您就正确地完成了它,并且您的模块已经准备好加载

若要使用该模块,请在shell中键入以下内容:

Import-Module MyFunctions

现在可以运行函数了

Get-Command -module MyFunctions
用户回答回答于

在PowerShell命令行上尝试如下:

. .\MyFunctions.ps1
A1

扫码关注云+社区

领取腾讯云代金券