How to get current working directory inside a Cmdlet

2.1k views Asked by At

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.

1

There are 1 answers

3
Marco On BEST ANSWER

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?