2012-12-16 23 views
6

我正在Visual Studio 2010中使用C#/ .Net 4.0開發PowerShell 3.0 cmdlet我想在PowerShell中獲取當前目錄,用戶在其中執行cmdlet。但Directory.GetCurrentDirectory()不能按預期工作。在下面的代碼中,結果是C:\ Users \ Administrator。如何獲取PowerShell cmdlet中的當前目錄?

問題:什麼cmdlet代碼用於獲取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; 
    } 
} 
+0

$(GET-位置)或$ PWD –

回答

20

PowerShell進程可以有多個運行空間,因此單個全局目錄不適用於PowerShell。除此之外,在PowerShell中,您當前的目錄可能在註冊表中,而不在文件系統中。但是,你可以用PowerShell的API訪問文件系統目錄,如下所示:

this.SessionState.Path.CurrentFileSystemLocation 
+0

我說好的想到了註冊表。那是個很好的觀點。是的,this.SessionState.Path.CurrentFileSystemLocation的作品。謝謝! –