您可能需要尝试一下,currentLocation.Path也可以指向其他提供商路径,例如寄存器。
this.SessionState.Path.CurrentFileSystemLocation.Path
题
我正在写一个powershell cmdlet。从我的cmdlet beginProcessing()方法的内部,我希望能够检索调用CMDLET时默认目录的目录。
示例:如果用户执行此操作:
cd \myDirectory
invoke-mycmdlet
我希望我的代码知道默认的shell目录是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主机启动文件夹。