首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PowerShell中的子文件夹中执行源函数

如何在PowerShell中的子文件夹中执行源函数
EN

Stack Overflow用户
提问于 2019-04-04 15:25:44
回答 1查看 795关注 0票数 1

我正在尝试创建一个PowerShell模块,它将使用以下代码点源在子文件夹“\ found”中找到的任何函数:

代码语言:javascript
复制
# Get the path to the function files
$functionPath = $PSScriptRoot + "\Functions\"

# Get a list of all the function filenames
$functionList = Get-ChildItem -Path $functionPath -Include *.ps1 -Name

# Loop through all discovered files and dot-source them into memory
ForEach ( $function in $functionList ) {
    . ( $functionPath + $function )
}

如果我将所有函数直接放在"\ functions“文件夹中,就可以正常工作了。但是,这并不理想,因为我不认为它允许在以后对函数文件进行适当的管理(特别是在团队环境中,多个SysAdmins可以在任何给定的时间修改每个函数的脚本文件)。此外,有些函数从CSV或文本文件中获取输入,如果将这些资产和相应的函数包含在同一个文件夹中,则会更加整洁。

因此,我的问题是:$PSScriptRoot,的“\ found”子文件夹中找到的所有函数,即使它们位于子文件夹中,如何完成上面所做的工作(即,点源)?

PS.最终目标是有一个通用模块,我分发给我的所有管理工作站,它将使我们创建的所有与管理相关的脚本/功能可用。然后,当我们添加和删除脚本时,每次启动PowerShell时都会在模块中动态更新它们。

在这个YouTube视频中,布赖恩·卡弗斯基获得了灵感。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-04 15:46:34

您可以使用一个一行程序来简化这一点:

代码语言:javascript
复制
Get-ChildItem -Path "$PSScriptRoot\Functions\" -Filter *.ps1 -Recurse | %{. $_.FullName }

您丢失了-Recurse参数,可以使用$function.FullName而不是连接$functionPath$function

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55519688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档