如何使 Powershell 脚本可从任何地方使用

Ste*_*ler 5 windows powershell

我有一个 Powershell 脚本,我想将其设为“公开”,这意味着我希望能够从任何文件夹执行该脚本,就像从命令提示符执行一样。

这可能吗?

小智 6

您还可以在本地 powershell 配置文件中添加别名

配置文件中的别名示例

设置别名 hello C:\scriptlocation\script.ps1

现在,只要您输入 hello,script.ps1 就会运行。

有关可以保存别名的各种配置文件的更多信息。 https://devblogs.microsoft.com/scripting/understanding-the-six-powershell-profiles/


Jos*_*ond 2

您可以探索如何使用 powershell 配置文件来实现此目的。请参阅: https: //learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles

如果脚本只是一个函数或一些变量,您可以将内容复制并粘贴到您的配置文件中。

或者,如果脚本代表您想要保持独立的独立代码单元,您可以将其导入到您的主配置文件中,如下所示:

get-content -path C:\blahblahblah\scriptName.ps1 -raw | invoke-expression
Run Code Online (Sandbox Code Playgroud)

最后,如果您正在编写“高级”powershell 函数,或者尝试正式执行操作,您可以研究使用 powershell 模块作为导出函数的方式。请参阅:https ://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_modules

@Lee_Dailey 将脚本添加到路径的答案也是可行的。如果您想添加大量脚本,一种方法是将C:/PowershellScripts/, 之类的文件夹添加到您的路径中,将脚本保存在那里,然后您就可以从任何地方调用 .PS1 文件。

  • 有帮助,但请注意,您应该使用“.”(点源)运算符,以便将“.ps1”文件的定义(函数、别名、变量)添加到调用者的作用域(即从“执行时的 _global_ 作用域”) $个人资料`); [通常应避免使用“Invoke-Expression”](https://blogs.msdn.microsoft.com/powershell/2011/06/03/invoke-expression-considered-harmful/)。_高级函数_的使用在技术上与_模块_无关,尽管使从模块导出的所有函数都成为高级函数是有意义的。 (2认同)