是否有关于这 3 种导入 PowerShell 模块的不同方法如何工作的详细参考?我目前在脚本中看到using modulevs的不同行为。Import-Module
似乎导入依赖项的工作方式有所不同。Import-Module按依赖顺序使用可以解决问题,但用using module它似乎无法解决依赖关系。
该脚本是否对导入语句的创建方式有异议,或者这些不同命令的工作方式是否存在记录差异?
我也没有找到任何指导方针,但我做了以下比较,以了解什么是什么。
Import-Module嗯,这是一个 cmdlet。这意味着
'PSReadLine','PSColor' | Import-Module$params = @{Name = 'PSReadLine'; OutBuffer = 1} ; Import-Module @paramsImport-Module -PassThru PSReadLinefunction Load {Import-Module PSReadLine}因此,它非常适合临时模块加载和动态重新加载。
using moduleusing是一个关键字,所以它不是像 那样可以传递的东西Import-Module。它接受参数的方式与 cmdlet 不同,并且不能与管道一起使用。简而言之,它是一个原始的。另一个限制是它必须放置在脚本之上,位于所有其他语句之前。
需要使用的一种情况using module是当您想要加载类和枚举时。也不Import-Module会将#Requires模块中定义的类添加到您的范围中。一般来说,它是为随意的模块加载而设计的。
#Requires -Modules这用于断言某些模块已加载(以及其他模块)。与其他命令相反,如果模块无法加载Import-Module. 另一个区别是它仅在脚本中工作——它在 shell 中不执行任何操作。