我有两个Powershell脚本.脚本A包含一个简单的Powershell函数.脚本B导入脚本A,然后调用脚本A中定义的函数.这在第一次执行脚本B时工作正常但在后续执行时Powershell会抱怨脚本A中定义的函数无法找到.在脚本B中添加-Force到import-module调用似乎可以解决问题,但我想了解为什么Powershell会出现这种意外行为.
这是脚本A.
function foo($param) { Write-Host $param }
这是脚本B.
Import-Module "C:\SomePath\scriptA.ps1" Foo "hello"
我从PS命令行调用脚本:
.\scriptB.ps1
这是我得到脚本执行的第二次和后续时间的错误.
脚本A不是PowerShell模块(因为它有一个ps1)扩展.相反,尝试像这样的dot-sourcing scriptA:
. c:\somepath\scripta.ps1 foo "hello"