2012-12-16 19 views
6

Visual Studio 2010'da C#/Net 4.0 kullanarak bir PowerShell 3.0 cmdlet geliştiriyorum. Geçerli dizinin kullanıcı cmdlet'u çalıştırdığı PowerShell'de almak istiyorum. Ancak Directory.GetCurrentDirectory() beklendiği gibi çalışmıyor. Aşağıdaki kodda, sonuç C: \ Users \ Administrator'dır.Geçerli dizini PowerShell cmdlet'inde nasıl edinebilirim?

Soru: PowerShell'in geçerli dizini almak için cmdlet kodu ne kullanılır?

[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; 
    } 
} 
+0

$ (get-konumu) veya ben kayıt düşündüm hadnt $ pwd –

cevap

20

PowerShell işleminde birden çok Runspaces bulunabilir, böylece tek bir genel dizin PowerShell için çalışmaz. Bunun yanı sıra, PowerShell'de mevcut dizininiz dosya sisteminde değil, Kayıt Defteri'nde olabilir. Ancak, şöyle PowerShell API ile dosya sistemi dir erişebilirsiniz:

this.SessionState.Path.CurrentFileSystemLocation 
+0

. İyi bir noktaya değindin. Evet, bu.SessionState.Path.CurrentFileSystemLocation çalışıyor. Teşekkürler! –

İlgili konular