PowerShell: Obtenez le répertoire par défaut à l'intérieur d'une applet de commande

StackOverflow https://stackoverflow.com/questions/19826114

  •  05-07-2022
  •  | 
  •  

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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top