目前我在我的脚本中使用以下结构:
HighLevel.ps1
LowLevelModule1.psm1
LowLevelModule2.psm1
...
Run Code Online (Sandbox Code Playgroud)
现在,我在ps1文件中设置严格模式,以便在运行时至少获得一些类型安全性.不幸的是,cllaing Set-StrictMode -Version Latest
只能为当前作用域和所有子作用域启用严格模式(这是设计使然.证明:https://technet.microsoft.com/en-us/library/hh849692.aspx).
据我了解当前的PS架构,在ps1文件中更改严格模式会更改脚本级别配置.但模块有自己的脚本范围,因此模块不会继承父级规则.
作为一种解决方法,我可以放到Set-StrictMode
每个PSM1文件,但它似乎不是最好的方法,因为我无法给我的模块的客户端决定,打开严格模式或不.
$VerbosePreferences
配置存在同样的问题.每个范围也启用此配置,因此我必须跨模块边界传播此信息.
有关如何全局更改严格模式和详细偏好的任何建议吗?
PS为此目的更改$ profile不是一个选项.
如果这些是您自己编写的模块,那么我建议您在模块内设置您想要的严格模式。它仅适用于模块内部的代码,因此由调用者设置的模块外部代码的设置是无关的。
如果这些是其他人编写的模块,那么您不想更改该代码的严格模式(或缺乏严格模式),因为它没有在严格模式下进行测试,并且可能会因此而中断。
归档时间: |
|
查看次数: |
760 次 |
最近记录: |