Powershell命令无法在单独的ps1文件中运行文件

时间:2017-10-03 01:36:00

标签: powershell

所以我有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的方式有问题吗?

1 个答案:

答案 0 :(得分:0)

您的问题来自点源时的相对路径。

首先:尝试从完整路径中点源。

第二:您可以尝试使用$PSScriptRoot或以前$MyInvocation.MyCommand.Definition从相对于来电者的路径中点源。