2011-08-12 5 views
2

저는 PowerGui 3.0에서 스크립트 파일을 도트 소스로 만들려고합니다.dot-source failing oin powergui


용어 '. \ PowerShell.Common.ps1이'는 cmdlet을, 기능, 스크립트 파일 또는 실행할 수있는 프로그램의 이름으로 인식되지 않습니다. 이름을 확인하거나 경로가 포함되어 있으면 경로가 인지 확인하고 다시 시도하십시오. D에서 6 문자 :. TFS \ 셰어 \ 데브 \ 배포 \ AutoSPInstaller \ SP2010 \ AutoSPInstaller AutoSPInstallerFunctionsCustom.ps1 \ \ 31 + \ PowerShell.Common.ps1 < < < < + CategoryInfo : ObjectNotFound : (. \ PowerShell.Common.ps1 : 문자열) [], CommandNotFoundException + FullyQualifiedErrorId : 파일 내에서 상기 CommandNotFoundException


그리고 PowerGUI를 연속적으로 내 스크립트 기능을 제공하지 않습니다 - 부모 스크립트의 상황에 맞는 목록에.

파일 "PowerShell.Common.ps1는"AutoSPInstallerFunctionsCustom.ps1 당신의 도움을 주셔서 감사합니다 같은 디렉토리에

답변

5

확인, PowerGUI를의 명령 줄에서 파일을 소스를 점하려면 당신의 현재 작업 디렉토리 스크립트의 디렉토리에 있습니다. PowerGUI 명령 줄에서 $PWD을 입력하여이를 확인할 수 있습니다. 스크립트의 디렉토리가 현재 작업 디렉토리가 스크립트의 디렉토리와 동일한없는 경우에도, 당신은 참조 할 수 있음을 보장 받기

# Get the current script's directory 
$MyDir = Split-Path $MyInvocation.MyCommand.Definition 

# Dot-source the external script by using the current script's directory 
. "$MyDir\ScriptName.ps1" 

:

는이 작업을 수행 할 스크립트에서 다른 스크립트를 참조하려면 스크립트 위치와 관련된 파일.

4

@Rynant는 문제가 현재 디렉토리가 아닌 스크립트의 디렉토리를 참조해야한다는 점을 분명히 지적합니다. 그러나 그의 코드 솔루션은 부분적으로 만 정확하다는 점에 유의해야합니다. 실제로, 여부는 당신이 그것을 부름에 달려 있습니다!

function Get-ScriptDirectory { Split-Path $script:MyInvocation.MyCommand.Path } 

공교롭게도

가, 난 그냥 제대로 다른 SO 문제의 스크립트 디렉토리를 얻기의 바로이 지점을 분석에 대한 자세한 설명을 썼다 :

보다 강력한 솔루션이입니다. 오랫동안 내 대답을 반복하기보다는 (테스트 차량 및 결과 매트릭스로 완성) 나는 this link을 제공 할 것입니다.

0

이 문제는 PowerGUI에서 작업중인 스크립트를 탐색 할 때 발생합니다.

호출 경로를 다른 스크립트로 변경하는 대신 스크립트를 원위치로 실행하는 것, 즉 $PWD을 스크립트의 디렉토리로 설정하는 것이 좋습니다. 마우스 오른쪽 버튼으로 클릭 컨텍스트 메뉴에서 Windows 탐색기을 사용하여 PowerGUI에서 Windows 셸을 통해 스크립트를 열면 가장 쉽게 수행 할 수 있습니다.

관련 문제