Rin*_*Tom 29 powershell import-module
如果我想从我的主要PowerShell脚本中分离出我的一些功能,我可以将其作为.ps1文件和点源编写相同,或者我可以创建它作为a .psm1并导入相同的使用Import-Module.
哪一个更好,为什么?
Kei*_*ill 28
模块最适合图书馆.它们使您可以更好地控制从模块导出的内容.默认情况下,PSM1文件中的所有脚本变量都是私有的 - 导入时模块外部不可见.同样,所有功能都是公开的.但是,您可以在PSM1文件中使用Export-ModuleMember来准确控制从模块导出的变量,函数,别名,cmdlet等.模块也可以从会话中删除,这与点源.PS1脚本的主要区别.另一个不同之处在于模块函数由它们所在的模块命名,因此您可以通过在模块名称前添加前缀以及函数名称的"\"来轻松访问同名的基于模块的函数,例如PSCX\Get-Uptime.在ISE中,此前缀也会调用intellisense支持.
我一般建议使用模块.:-)
Fro*_* F. 15
Dotsourcing +脚本和模块是两个不同的东西.模块非常适合收集/分组您将在脚本中使用的函数和cmdlet.如果您想要以交互方式使用的功能(在控制台中调用函数),则模块非常适合.
如果你有一个你运行的大脚本..让我们说"迁移文件共享",或者使用任务计划程序定期调用的单个脚本,然后点源更容易.
这取决于你需要什么.摘要:
除了其他答案之外,还有一些模块功能.
在PowerShell V3中,无需调用Import-Module即可使用模块的导出命令.当以交互方式使用命令时,这尤其有用.PowerShell以某种方式缓存并知道所有可用的模块命令甚至是他们的帮助Get-Help SomeCommand(但是对于模块帮助不是这样Get-Help about_SomeModule).
点源函数和脚本模块函数的行为有几个细微差别.列出它们并不容易,这里只是一个例子: Powershell scriptblock变量范围和模块的奇怪行为,任何建议? 有时使用脚本模块会变得很痛苦,特别是当一个人发现不需要的差异和问题太晚时,即简单的事情在开发开始时工作正常,但复杂的事情后来开始出错.
总而言之,通常我会使用模块,除非它们不能正常工作.其中之一是调用脚本模块函数中传递的用户脚本块.
| 归档时间: |
|
| 查看次数: |
15148 次 |
| 最近记录: |