반응형
가져오기-모듈의 상대 경로
디렉토리 구조는 다음과 같습니다.
C:\TFS\MasterScript\Script1.ps1
C:\TFS\ChildScript\Script2.ps1
내가 하고 싶은 것은 디렉토리 계층 구조에서 Script1.ps1을 찾기 위해 Script2.ps1의 상대 경로를 지정하는 것입니다.
Script2.ps1에서 시도한 내용은 다음과 같습니다.
Import-Module ../MasterScript/Script1.ps1
하지만 작동하지 않고 모듈을 찾을 수 없다고 말합니다.
라고 하면Import-Module C:\TFS\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
이를 위한 새로운 방법은$PSScriptRoot
Import-Module $PSScriptRoot\Script1.ps1
멋진 작은 라이너.
이것은 저에게 효과가 있었습니다.
$selfPath = (Get-Item -Path "." -Verbose).FullName
$dllRelativePath = "........"
$dllAbsolutePath = Join-Path $selfPath $dllRelativePath
Import-Module $dllAbsolutePath
추가할 수 있습니다.using module ..\path\to\module
모든 PowerShell 스크립트 파일의 맨 위에 있습니다.
경로는 항상 사용 문을 입력한 스크립트에 상대적입니다.
참고: 항상 백슬래시를 경로 구분 기호로 사용합니다.리눅스에서도.
언급URL : https://stackoverflow.com/questions/14382579/relative-path-in-import-module
반응형
'prosource' 카테고리의 다른 글
"@WebMvcTest"에 빈 하나 추가 (0) | 2023.08.01 |
---|---|
IPython 노트북을 PDF 및 HTML로 변환하는 방법은 무엇입니까? (0) | 2023.08.01 |
연속화, 도면요소를 일반 객체로 변환 (0) | 2023.08.01 |
SQL*Plus에서 화면 지우기 (0) | 2023.08.01 |
선택한 열을 영상 시리즈가 아닌 데이터 프레임으로 유지 (0) | 2023.08.01 |