0
我在单独的文件中有功能,我需要在一个主文件中作为作业运行。将脚本的相对路径传递给PowerShell作业
我需要能够传递这些函数参数。
现在我的问题是弄清楚如何将函数文件的路径以不完全可怕的方式传递给作业。
我需要在提高可读性文件的顶部定义的函数(只是有一个静态的评论,说“脚本使用somefunc.ps1”是不够的)
我还需要参考脚本相对路径(它们将全部在相同的文件夹中)。
现在我正在使用env:来存储脚本的路径,但是这样做我需要在5个地方参考脚本!
这是我有:
testJobsMain.ps1:
#Store path of functions in env so jobs can find them
$env:func1 = "$PSScriptRoot\func1.ps1"
$env:func2 = "$PSScriptRoot\func2.ps1"
$arrOutput = @()
$Jobs = @()
foreach($i in ('aaa','bbb','ccc')) {
$Import = {. $env:func1}
$Execute = {func1 -myArg $Using:i}
$Jobs += Start-Job -InitializationScript $Import -ScriptBlock $Execute
}
$JobsOutput = $Jobs | Wait-Job | Receive-Job
$JobsOutput
$Jobs | Remove-Job
#Clean up env
Remove-Item env:\func1
$arrOutput
func1.ps1
function func1($myArg) { write-output $myArg }
func2.ps1
function func2($blah) { write-output $blah }