我正在写一个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主机启动文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top