Reputation: 876
I am writing a Cmdlet for PowerShell in C#. I am subclassing a Cmdlet
and NOT a PSCmdlet
.
Is there a way to get the current directory from PowerShell? I could do so with the PSCmdlet
using GetVariableValue("pwd")
. But in the Cmd class I do not have that available.
Environment.CurrentDiretory
points me to the path where powershell was started from, not where PowerShell itself is currently positioned.
edit
Example:
I fire up powershell via - say - powershell_ise.exe
. It starts up in C:\Windows\System32\WindowsPowerShell\v1.0
. I then change path using cd c:\my\folder
and run my command Do-Something
. Inside the implementation of "Do-Something" (C#-side) I'd like to be able to retrieve the current path => c:\my\folder
.
If possible, I would like to avoid using PSCmdlet
.
Upvotes: 7
Views: 2379
Reputation: 23937
I am starting in C:\Users\<myusername>
. If I know enter cd..
I am in C:\Users\
Entering (Get-Location).Path
returns C:\Users
. Thats what you want, isnt it?
Altrnativly try:
WriteObject(this.SessionState.Path.CurrentFileSystemLocation);
Reference: How can I get the current directory in PowerShell cmdlet?
Upvotes: 6