Powershell:从 cmdlet 中获取默认目录

JMa*_*sch 2 powershell cmdlets

我正在编写一个 powershell cmdlet。从我的 cmdlet BeginProcessing() 方法内部,我希望能够检索调用 cmdlet 时作为默认目录的目录。

示例:如果用户这样做:

cd \myDirectory
invoke-mycmdlet
Run Code Online (Sandbox Code Playgroud)

我想让我的代码知道默认的 shell 目录是 c:\myDirectory。当我访问 Environment.CurrentDirectory 时,它总是 c:\windows\system32

我在 SO 上看到过类似的帖子,其中海报需要使用 get-location 从 shell 内部设置 Environment::Current 目录。那对我不起作用。

基本上,我的 cmdlet 做了一些文件系统的事情,我希望用户能够 cd\ 进入一个目录,并执行我的 cmdlet,它在他们切换到的目录上运行——就像你期望的那样从旧的命令控制台工作。

Sha*_*evy 5

你可能想试试这个,CurrentLocation.Path 也可以指向其他提供者路径,比如 registery。

this.SessionState.Path.CurrentFileSystemLocation.Path
Run Code Online (Sandbox Code Playgroud)