因此,如果您看一下我在这里发布的示例:
https://stackoverflow.com/a/55064995/7710456 https://stackoverflow.com/a/55064995/7710456
我将对此进行一些扩展。
我又看了一遍,并为所有模块创建了一个模块清单,所有这些模块都需要遵循 PowerShell 模块的标准(位于与 PowerShell 模块同名的文件夹中,位于PS模块路径)
写入BazFunctions.psm1:
Function Write-Baz {
return "Baz"
}
写BarFunctions.psm1:
Function Write-Bar {
return "Bar"
}
Function Write-BarBaz {
$bar = Write-Bar;
$baz = Write-Baz;
return ("{0}{1}" -f $bar, $baz)
}
写入-FooFunctions.psm1
Function Write-Foo {
return "Foo"
}
Function Write-FooBar {
$foo = Write-Foo
$bar = Write-Bar
return ("{0}{1}" -f $foo, $bar)
}
Function Write-FooBarBaz {
$foobar = Write-FooBar
$baz = Write-Baz
return ("{0}{1}" -f $foobar, $baz)
}
Function Write-FooBazBar {
$foo = Write-Foo
$bar = Write-Bar
$baz = Write-Baz
return ("{0}{1}{2}" -f $foo, $bar, $baz)
}
现在-差异。在 Write-BarFunctions 的清单中(注意是必需的,不是嵌套的):
RequiredModules = @('Write-BazFunctions')
请注意与上面链接的原始答案的另一个区别,我直接针对 psm1 文件,而是仅通过模块名称引用它们。
完成此操作后,我就能够导入 Write-FooFunctions 并且所有函数都可用。由于 Write-BarFunctions 中的 Write-BarBaz 从 Write-BazFunctions 调用 Write-Baz,您可以看到这将允许嵌套模块相互引用。