Potresti voler provare invece, CurrentLocation.Path potrebbe anche indicare altri percorsi del fornitore, come il registro.
this.SessionState.Path.CurrentFileSystemLocation.Path
Domanda
Sto scrivendo un cmdlet PowerShell. Dall'interno del mio metodo CMDlet BeginProcessing (), voglio essere in grado di recuperare la directory che era la directory predefinita al momento invocato il cmdlet.
Esempio: se l'utente lo fa:
cd \myDirectory
invoke-mycmdlet
Voglio che il mio codice sappia che la directory di shell predefinita era C: myDirectory. Quando accedo all'ambiente.CurrentDirectory, è sempre C: Windows System32
Ho visto un post simile su quindi in cui il poster doveva impostare l'ambiente :: corrente diretta dall'interno della shell usando il gioco. Non funzionerà per me.
Fondamentalmente, il mio cmdlet fa alcune cose del file system e voglio che l'utente sia in grado di semplicemente cd in una directory ed eseguire il mio cmdlet, con esso che opera sulla directory in cui sono passati, proprio come ti aspetteresti Lavorare dalla vecchia console di comando.
Soluzione
Potresti voler provare invece, CurrentLocation.Path potrebbe anche indicare altri percorsi del fornitore, come il registro.
this.SessionState.Path.CurrentFileSystemLocation.Path
Altri suggerimenti
Sai, mi sembra sempre di trovarlo subito dopo aver pubblicato - indipendentemente da quanto tempo ho trascorso a cercare prima di raggiungere così!
Quindi, il mio cmdlet eredita da PSCMdlet. Ho scoperto che avrei potuto ottenere il percorso da cui volevo
this.SessionState.Path.CurrentLocation.Path
(dove "questo" è una classe CMDLET che eredita da PSCMDLET)
Prova il Get-Location
cmdlet. Dovrebbe essere l'attuale posizione di esecuzione dello script, piuttosto che la cartella di avvio host di PowerShell.