文章目录
自动导入模块所在目录
安装模块
创建基本 PowerShell 模块
创建模块清单
安装 PowerShell 模块
自动导入
关于自动导入,实际体验验上是指,您可以直接在终端中引用(通过模块中的(公开的)函数名称来调用某个函数
这些模块只有在被放置在$env:psModulePath
下,同时符合一定的目录层析要求,才可以达到效果
如果你的模块文件组织的合乎规范,那么在调用相应函数后,模块才会显示的被导入(我是指,您可以通过gm
(get-module)查询到被导入的模块
自定义添加您的模块目录
采用命令行方式添加
处理系统配置的几个模块自动导入目录,您还可以通过一定的语句实现psModulePath
的自定义添加,如此一来,您的模块就不必要放置在那几个默认的目录下了.
当然,为了实现自动添加,您需要将类似于以下代码写入到您的powershell配置文件中,这样在每新建一个session,您配置的路径都将有效.
# add $psPath:
#Save the current value in the $p variable.
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
#Add the new path to the $p variable. Begin with a semi-colon separator.
$p += ";$env:repos\learnpwsh\modulesByCxxu\"
#Add the paths in $p to the PSModulePath value.
[Environment]::SetEnvironmentVariable("PSModulePath",$p)
不同path需要以;
分割
按照microsoft的说法,修改path之后需要做广播处理,如果是通过修改启动配置文件的方式添加,则不需要即时广播psmodulePath的变化
更直接的方法添加psModulePath
这样,就不需要动态配置了
path添加效果示例
最后一条时后期添加的
相应的目录结构如下:
当然,对于复杂的多文件模块,还需要(必须)有清单文件
当然,您的模块不能有逻辑错误或者其他违反规定的内容编排,这将导致模块无法导入,同时您还看不到错误提示!!
模块导入查询
基于注释的帮助
函数 - PowerShell | Microsoft Docs
最佳做法是将基于注释的帮助添加到函数,以便你与之共享函数的人知道如何使用它们。
更多细节
查看官方文档
别名与作用域
相关命令
export-alias
导出别名配置文件
new-alias
新建别名(也可强制修改别名)
set-alias
修改别名(也可新建别名)
allscope是通过option选项来指定的(而不是scope选项)
New-Alias testAllScopeAlias -Value desktop -Option AllScope
PS D:\repos\learnPython> New-Alias testAllScopeAlias -Value desktop -Option AllScope
PS D:\repos\learnPython> testAllScopeAlias
将上述函数的调用(或者说函数名)写入到启动配置文件中,就可以自动导入别名,同时可以避免配置文件中包含过多内容。