如何在另一个 powershell 脚本中包含另一个 powershell 脚本文件?

Bil*_*ore 5 powershell

假设我有一个 powershell 脚本,它在我当前路径的相对路径中包含一个 Powershell 哈希。让我们称之为“name.ps1”,它包含:

$names = @{
   "bob" = "bobby"
   "john" = "jones"
   "danial" = "davis"
}
Run Code Online (Sandbox Code Playgroud)

等等...

现在,我有另一个名为“dosomething.ps1”的 powershell 脚本,它想将此文件“../db/names.ps1”导入当前的 powerscript 文件中,就像旧式 c 语言包含一样,如下所示:

#include "../db/names.ps1"

write-host ("BOB: {0}" -f $names.bob)
write-host ("JOHN: {0}" -f $names.john)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在powershell中完成这个?

小智 12

这在 PowerShell 中称为“点源”,因为您只需使用“.Path/to/.ps1”来运行该文件。通常,这些文件将包含您想要在父脚本中使用的自定义函数。

在下面的示例中,“include”文件与正在执行的 PowerShell 脚本位于同一文件夹中。

. "$PSScriptRoot\MyCoolFunctionsLibrary.ps1"
Run Code Online (Sandbox Code Playgroud)

只需将其放在“include”文件中对函数的任何调用之前

注意:如果要从包含文件传递对象,请务必在该包含文件中正确设置这些对象的范围。