programing

PowerShell PSScriptRoot가 null입니다.

megabox 2023. 9. 11. 21:35
반응형

PowerShell PSScriptRoot가 null입니다.

내가 뛸때$PSScriptRoot돌아오다null. 저는 PS 버전 4를 사용하고 있습니다.

$val  = Join-Path -Path $PSScriptRoot WebPlatformInstaller_amd64_en-US.msi

오류

Join-Path : 빈 문자열이므로 인수를 매개 변수 'Path'에 바인딩할 수 없습니다.

ISE를 사용하는 경우:

$psISE.CurrentFile.FullPath

ISE가 시작되면 $psISE가 생성되며 ISE 인스턴스의 현재 경로를 결정하는 데 사용할 수 있습니다.이는 버전 3.0에서 도입되었습니다.

ISE 객체 모델 계층 참조

셸 또는 ISE에서 경로를 얻으려면 다음과 같은 방법을 사용할 수 있습니다.

if ($psISE)
{
    Split-Path -Path $psISE.CurrentFile.FullPath        
}
else
{
    $global:PSScriptRoot
}

이 표현식이 저장된 .ps1 스크립트에 있는지 확인해야 합니다.

이 문제는 다음과 같은 경우에 발생할 수 있습니다.

  • 이 문은 PowerShell ISE 콘솔에서 사용합니다.
  • 이 문은 스크립트 파일 없이 PowerShell 콘솔에서 사용합니다.
  • PowerShell ISE에서 이 식을 실행하도록 표시했습니다.

사용가능

$PWD.Path 

파워쉘 ISE와 파워쉘 콘솔에서 작동합니다.Present Working Directory를 반환합니다.

$PSScriptRoot는 현재 스크립트가 저장되는 루트 경로입니다.명령어에 사용하면 현재 경로를 찾는 스크립트가 없으므로 공백으로 돌아갑니다.

언급URL : https://stackoverflow.com/questions/44474074/powershell-psscriptroot-is-null

반응형