Es posible que desee probar esto en su lugar, CurrentLocation.path también podría señalar otras rutas de proveedores, como el registro.
this.SessionState.Path.CurrentFileSystemLocation.Path
Pregunta
Estoy escribiendo un cmdlet de PowerShell. Desde el interior de mi método cmdlet beginprocessing (), quiero poder recuperar el directorio que era el directorio predeterminado en el momento en que se invocó el cmdlet.
Ejemplo: si el usuario hace esto:
cd \myDirectory
invoke-mycmdlet
Quiero que mi código sepa que el directorio de shell predeterminado fue C: myDirectory. Cuando accedo al entorno. CurrentDirectory, siempre es C: Windows System32
He visto una publicación similar sobre, por lo que el póster necesitaba establecer el directorio de entorno :: actual desde el interior del shell usando la ubicación get. Eso no funcionará para mí.
Básicamente, mi cmdlet hace algunas cosas del sistema de archivos, y quiero que el usuario pueda simplemente cd en un directorio y ejecutar mi cmdlet, con él operando en el directorio en el que se cambió, al igual que esperar que lo Trabajar desde la consola de comando antigua.
Solución
Es posible que desee probar esto en su lugar, CurrentLocation.path también podría señalar otras rutas de proveedores, como el registro.
this.SessionState.Path.CurrentFileSystemLocation.Path
Otros consejos
Sabes, siempre parece encontrarlo justo después de publicar, ¡independientemente de cuánto tiempo pasé mirando antes de alcanzarlo!
Entonces, mi cmdlet hereda de pscmdlet. Descubrí que podía obtener el camino que quería
this.SessionState.Path.CurrentLocation.Path
(donde "esto" es una clase de cmdlet que hereda de pscmdlet)
Prueba el Get-Location
cmdlet. Debe ser la ubicación de ejecución actual del script, en lugar de la carpeta de inicio del host PowerShell.