首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >导入模块中的相对路径

导入模块中的相对路径
EN

Stack Overflow用户
提问于 2013-01-17 23:34:36
回答 3查看 62.6K关注 0票数 48

我的目录结构如下所示:

代码语言:javascript
复制
C:\TFS\MasterScript\Script1.ps1
C:\TFS\ChildScript\Script2.ps1

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

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

代码语言:javascript
复制
Import-Module ../MasterScript/Script1.ps1

但它不工作,并说它找不到模块。

如果我说Import-Module C:\TFS\MasterScript\Script1.ps1,它工作得很好。这里我漏掉了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-18 00:06:53

使用相对路径时,它基于当前位置(通过Get- location获得),而不是脚本的位置。试着这样做:

代码语言:javascript
复制
$ScriptDir = Split-Path -parent $MyInvocation.MyCommand.Path
Import-Module $ScriptDir\..\MasterScript\Script.ps1

在PowerShell v3中,您可以在脚本中使用自动变量$PSScriptRoot将其简化为:

代码语言:javascript
复制
# PowerShell v3 or higher

#requires -Version 3.0
Import-Module $PSScriptRoot\..\MasterScript\Script.ps1
票数 85
EN

Stack Overflow用户

发布于 2018-12-28 01:13:45

为此,新的方法是$PSScriptRoot

代码语言:javascript
复制
Import-Module $PSScriptRoot\Script1.ps1

漂亮的小衬垫。

票数 9
EN

Stack Overflow用户

发布于 2014-06-20 19:08:56

这对我很有效:

代码语言:javascript
复制
$selfPath = (Get-Item -Path "." -Verbose).FullName
$dllRelativePath = "........"
$dllAbsolutePath = Join-Path $selfPath $dllRelativePath
Import-Module $dllAbsolutePath
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14382579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档