대신 이것을 시도 할 수 있습니다. currentLocation.path는 레지스터와 같은 다른 제공자 경로를 가리킬 수도 있습니다.
this.SessionState.Path.CurrentFileSystemLocation.Path
문제
나는 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 호스트 시작 폴더가 아닌 스크립트의 현재 실행 위치 여야합니다.