Je développe un PowerShell 3.0 cmdlet
Utilisation de C # /. Net 4.0 dans Visual Studio 2010. Je souhaite obtenir le répertoire actuel dans PowerShell où l'utilisateur exécute le cmdlet
. Mais Directory.GetCurrentDirectory () ne fonctionne pas comme prévu. Dans le code ci-dessous, le résultat est C: UsersAdministrator.
Question: quoi cmdlet
le code est utilisé pour obtenir le répertoire actuel de PowerShell?
[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "StatusBar")]
public class GetStatusBarCommand : System.Management.Automation.PSCmdlet
{
/// <summary>
/// Provides a record-by-record processing functionality for the cmdlet.
/// </summary>
protected override void ProcessRecord()
{
this.WriteObject(Directory.GetCurrentDirectory());
return;
}
}
Réponses:
21 pour la réponse № 1Un processus PowerShell peut avoir plusieurs espaces d'exécutionAinsi, un seul répertoire global ne fonctionne pas pour PowerShell. En outre, dans PowerShell, votre répertoire actuel peut se trouver dans le registre et non dans le système de fichiers. Toutefois, vous pouvez accéder au répertoire du système de fichiers à l’aide de l’API PowerShell de la manière suivante:
this.SessionState.Path.CurrentFileSystemLocation