【问题标题】:Loading custom functions in PowerShell在 PowerShell 中加载自定义函数
【发布时间】:2013-09-12 12:29:02
【问题描述】:

我在一个附加的 PowerShell 脚本文件中定义了一些附加函数,我正试图将它们加载到一个主 .ps1 文件中。但是,当我从 PowerShell 提示符调用 .ps1 文件时,它似乎没有运行这些命令。

在以下代码示例中,build_functions.ps1 包含定义各种自定义函数的代码。如果我单独运行该文件(例如,单独运行它然后通过主脚本运行)它可以正常工作。 Build_builddefs.ps1 包含许多变量,在运行主脚本之前也需要填充这些变量。

在我的主要脚本的开头我有这个:

.\build_functions.ps1
.\build_builddefs.ps1

但是,这些似乎没有运行,因为主脚本在尝试执行第一个自定义函数时失败。我做错了什么?

【问题讨论】:

标签: powershell


【解决方案1】:

你必须dot source他们:

. .\build_funtions.ps1
. .\build_builddefs.ps1

注意额外的.

这篇heyscriptingguy 文章应该会有所帮助 - How to Reuse Windows PowerShell Functions in Scripts

【讨论】:

  • 如果我不知道源路径,如何找到?
【解决方案2】:

我一直都在用这个

Import-module .\build_functions.ps1 -Force

【讨论】:

  • 我更喜欢这个答案而不是@manojlds,因为点源不允许用户“撤消”点源。使用Import-Module,您可以通过Remove-Module Build_Functions轻松删除模块
【解决方案3】:

以下是如何从特定路径/目录加载一个:

. "C:\scripts\Function-Search-AD.ps1"

【讨论】:

    猜你喜欢
    • 2022-12-06
    • 2011-08-22
    • 2022-12-09
    • 2017-12-22
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多