我的目录结构如下所示:
C:\TFS\MasterScript\Script1.ps1
C:\TFS\ChildScript\Script2.ps1
我要做的是在Script2.ps1中指定相对路径,以便在hirearchy目录中查找Script1.ps1。
这是我在Script2.ps1中尝试的:
Import-Module ../MasterScript/Script1.ps1
但它不工作,并说它找不到模块。
如果我说Import-Module C:\TFS\MasterScript\Script1.ps1
,它工作得很好。这里我漏掉了什么?
发布于 2013-01-18 00:06:53
使用相对路径时,它基于当前位置(通过Get- location获得),而不是脚本的位置。试着这样做:
$ScriptDir = Split-Path -parent $MyInvocation.MyCommand.Path
Import-Module $ScriptDir\..\MasterScript\Script.ps1
在PowerShell v3中,您可以在脚本中使用自动变量$PSScriptRoot
将其简化为:
# PowerShell v3 or higher
#requires -Version 3.0
Import-Module $PSScriptRoot\..\MasterScript\Script.ps1
发布于 2018-12-28 01:13:45
为此,新的方法是$PSScriptRoot
Import-Module $PSScriptRoot\Script1.ps1
漂亮的小衬垫。
发布于 2014-06-20 19:08:56
这对我很有效:
$selfPath = (Get-Item -Path "." -Verbose).FullName
$dllRelativePath = "........"
$dllAbsolutePath = Join-Path $selfPath $dllRelativePath
Import-Module $dllAbsolutePath
https://stackoverflow.com/questions/14382579
复制相似问题