Import-Module中的相对路径?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)

我有这样的目录结构:

C:\TFS\MasterScript\Script1.ps1
C:\TFS\ChildScript\Script2.ps1

我想要做的是在Script2.ps1中指定相对路径,以查找目录hirearchy中的Script1.ps1。

这是我在Script2.ps1中尝试的:

Import-Module ../MasterScript/Script1.ps1

但它不起作用,说找不到该模块。

提问于
用户回答回答于

当使用相对路径时,它基于当前位置(通过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
用户回答回答于

这对我有效:

$selfPath = (Get-Item -Path "." -Verbose).FullName
$dllRelativePath = "........"
$dllAbsolutePath = Join-Path $selfPath $dllRelativePath
Import-Module $dllAbsolutePath

扫码关注云+社区