gpt4 book ai didi

powershell - 并行运行函数

转载 作者:行者123 更新时间:2023-12-02 03:03:29 25 4
gpt4 key购买 nike

有什么方法可以在 PowerShell 中运行并行编程函数

类似于:

Function BuildParallel($configuration)
{
$buildJob = {
param($configuration)
Write-Host "Building with configuration $configuration."
RunBuilder $configuration;
}

$unitJob = {
param()
Write-Host "Running unit."
RunUnitTests;
}

Start-Job $buildJob -ArgumentList $configuration
Start-Job $unitJob

While (Get-Job -State "Running")
{
Start-Sleep 1
}

Get-Job | Receive-Job
Get-Job | Remove-Job
}

不起作用,因为它提示无法识别“RunUnitTests”和“RunBuilder”,它们是在同一脚本文件中声明的函数。显然,发生这种情况是因为脚本 block 是一个新的上下文,并且对同一文件中声明的脚本一无所知。

我可以尝试在 Start-Job 中使用 -InitializationScript,但是 RunUnitTests 和 RunBuilder 都会调用更多在同一文件中声明或从其他文件引用的函数,所以...

我确信有办法做到这一点,因为它只是模块化编程(函数、例程和所有这些东西)。

最佳答案

您可以将函数放在单独的文件中,然后通过点源将它们导入到需要的当前上下文中。我在我的 Powershell 配置文件中执行此操作,因此我的一些自定义函数可用。

$items = Get-ChildItem "$PSprofilePath\functions"
$items | ForEach-Object {
. $_.FullName
}

如果你想导入一个文件,它只是:

. C:\some\path\RunUnitTests.ps1

关于powershell - 并行运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44337000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com