所以我有3个ps1文件 - A.ps1,B.ps1和C.ps1
B.ps1包含读取和清理每个文件的逻辑,它从C.ps1导入函数以实现其大部分逻辑。所以B.ps1看起来像:
. .\C.ps1
# Code ot clean up files using functions from C.ps1
从A.ps1开始,我为目录
中的每个文件执行B.ps1$psa = [powershell]::Create()
$psa.RunspacePool = $runspacepool
$psa.AddScript("B.ps1 $($psitem) $($id)")
$handle = $psa.BeginInvoke()
由于某种原因,这些功能不会执行。由于它在后台运行,我甚至无法看到错误。
但是只要我将所有功能从C.ps1复制到B.ps1,一切都会开始工作。
我不确定我错过了什么。我导入C.ps1的方式有问题吗?
答案 0 :(得分:0)
您的问题来自点源时的相对路径。
首先:尝试从完整路径中点源。
第二:您可以尝试使用$PSScriptRoot
或以前$MyInvocation.MyCommand.Definition
从相对于来电者的路径中点源。