문제

나는 PowerShell cmdlet을 쓰고 있습니다. CMDLET 시작 프로세싱 () 메소드 내부에서 CMDLET가 호출 당시 기본 디렉토리 인 디렉토리를 검색 할 수 있기를 원합니다.

예 : 사용자가 다음을 수행하는 경우 :

cd \myDirectory
invoke-mycmdlet

내 코드가 기본 쉘 디렉토리가 C : MyDirectory라는 것을 알고 싶습니다. 환경에 액세스 할 때 CurrentDirectory는 항상 C : Windows System32입니다.

포스터가 Get-Location을 사용하여 쉘 내부의 환경 디렉토리를 설정하는 데 필요한 위치에 비슷한 게시물을 보았습니다. 그것은 나를 위해 효과가 없을 것입니다.

기본적으로 내 CMDLET는 파일 시스템 작업을 수행하며 사용자가 디렉토리로 CD 를 디렉토리에 넣고 CMDLET을 실행할 수 있기를 원합니다. 이전 명령 콘솔에서 작업하십시오.

도움이 되었습니까?

해결책

대신 이것을 시도 할 수 있습니다. currentLocation.path는 레지스터와 같은 다른 제공자 경로를 가리킬 수도 있습니다.

this.SessionState.Path.CurrentFileSystemLocation.Path

다른 팁

알다시피, 나는 내가 게시 한 직후에 항상 그것을 찾는 것 같습니다.

따라서 CMDLET는 PSCMDLET에서 상속합니다. 내가 원하는 길을 얻을 수 있다는 것을 알았습니다.

this.SessionState.Path.CurrentLocation.Path

(여기서 "this"는 pscmdlet에서 상속되는 cmdlet 클래스입니다)

시도해보십시오 Get-Location cmdlet. PowerShell 호스트 시작 폴더가 아닌 스크립트의 현재 실행 위치 여야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top