【发布时间】:2015-09-02 18:35:17
【问题描述】:
我正在用 C# 为 PowerShell 编写 Cmdlet。我正在继承 Cmdlet 而不是 PSCmdlet。
有没有办法从 PowerShell 获取当前目录?我可以通过PSCmdlet 使用GetVariableValue("pwd") 来做到这一点。但是在 Cmd 类中我没有。
Environment.CurrentDiretory 指向启动 powershell 的路径,而不是 PowerShell 本身当前所在的路径。
编辑
例子:
我通过 - 比如说 - powershell_ise.exe 启动了 powershell。它在C:\Windows\System32\WindowsPowerShell\v1.0 中启动。然后我使用cd c:\my\folder 更改路径并运行我的命令Do-Something。在“Do-Something”(C# 端)的实现中,我希望能够检索当前路径 => c:\my\folder。
如果可能,我想避免使用PSCmdlet。
【问题讨论】:
-
您确实应该使用
PSCmdlet或将位置作为参数从调用 cmdlet 传递。 -
我目前正在重写我的代码以派生自
PSCmdlet。到目前为止看起来不错。我有点害怕它,因为我真的不需要它,除了访问它的内部。另一方面......我猜这正是它的目的...... -
没错,你有一个运行时依赖(当前位置)= 使用 PSCmdlet
标签: c# powershell cmdlet