gpt4 book ai didi

powershell - 在 powershell 中为所有模块设置严格模式

转载 作者:行者123 更新时间:2023-12-03 11:37:43 25 4
gpt4 key购买 nike

目前我在我的脚本中使用以下结构:

HighLevel.ps1
LowLevelModule1.psm1
LowLevelModule2.psm1
...

现在,我在 ps1 文件中设置严格模式,以便在运行时至少获得一些类型安全。不幸的是,调用 Set-StrictMode -Version Latest将仅对当前范围和所有子范围启用严格模式(这是设计使然。证明: https://technet.microsoft.com/en-us/library/hh849692.aspx)。

据我了解当前的 PS 架构,更改 ps1 文件中的严格模式会更改脚本级别的配置。但是模块有自己的脚本范围,所以模块不会继承父规则。

作为一种解决方法,我可以把 Set-StrictMode到每个 PSM1 文件,但这似乎不是最好的方法,因为我无法让我的模块的客户端有机会决定是否打开严格模式。
$VerbosePreferences 也存在同样的问题配置。每个范围也启用了此配置,因此我必须以某种方式跨模块边界传播此信息。

有什么建议可以在全局范围内更改严格模式和详细首选项吗?

附言为此目的更改 $profile 不是一种选择。

最佳答案

如果这些是您自己编写的模块,那么我建议您在模块内设置所需的严格模式。它只适用于模块内部的代码,因此调用者设置的模块外部代码的设置无关紧要。

如果这些是其他人编写的模块,那么您不想更改该代码上的严格模式(或缺少),因为它没有在严格模式下进行测试并且可能会因此而中断。

关于powershell - 在 powershell 中为所有模块设置严格模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com