Vous voudrez peut-être essayer ceci à la place, CurrentLocation.path pourrait également pointer vers d'autres chemins de fournisseur, tels que le registre.
this.SessionState.Path.CurrentFileSystemLocation.Path
Question
J'écris une applet de commande PowerShell. De l'intérieur de ma méthode de début de commande de commande (), je veux pouvoir récupérer le répertoire qui était le répertoire par défaut au moment où l'onduleur a été invoqué.
Exemple: si l'utilisateur fait ceci:
cd \myDirectory
invoke-mycmdlet
Je veux que mon code sache que le répertoire de shell par défaut était C: MyDirectory. Lorsque j'accès à l'environnement.currentDirectory, c'est toujours C: Windows System32
J'ai vu un article similaire, alors où l'affiche devait définir l'environnement :: répertoire actuel de l'intérieur du shell à l'aide de get-location. Cela ne fonctionnera pas pour moi.
Fondamentalement, mon applet de commande fait des trucs de système de fichiers, et je veux que l'utilisateur puisse simplement CD dans un répertoire, et exécuter ma cmdlet travailler à partir de l'ancienne console de commande.
La solution
Vous voudrez peut-être essayer ceci à la place, CurrentLocation.path pourrait également pointer vers d'autres chemins de fournisseur, tels que le registre.
this.SessionState.Path.CurrentFileSystemLocation.Path
Autres conseils
Vous savez, je semble toujours le trouver juste après avoir posté - peu importe combien de temps j'ai passé à regarder avant de le saisir!
Ainsi, mon applet d'héritage hérite de PSCMDLET. J'ai trouvé que je pouvais obtenir le chemin que je voulais
this.SessionState.Path.CurrentLocation.Path
(où "this" est une classe de commande qui hérite de pscmdlet)
Essaie le Get-Location
cmdlet. Il devrait s'agir de l'emplacement d'exécution actuel du script, plutôt que du dossier de démarrage hôte PowerShell.