我需要调用在单独文件夹中的文件中定义的powershell函数。该函数需要使用位于同一文件夹中的dll。有没有简单的方法呢?
详细说明:
结构:
build.ps1包含“... \ tools \ myTool \ fileWithFunction.ps1”
它调用该文件中的函数。该函数需要加载someDll.dll。我可以在函数调用中传递文件夹(toos \ myTool)的位置,但是想知道是否有一种方法可以让fileWithFunction中的函数自己找出dll的位置(假设它总是在同一个文件夹中。)
答案 0 :(得分:0)
使用$PSScriptRoot
,这应该可以满足您的需求。
答案 1 :(得分:0)
如果您使用的是PowerShell V2(希望您至少使用v3),请将其放在fileWithFunction.ps1中
$ScriptDir = {Split-Path $MyInvocation.ScriptName –Parent}
然后像这样访问目录:
"ScriptDir is $(&$ScriptDir)"
使用scriptblock的原因是ensure safety when dot sourcing script files.