2012-12-16 10 views
6

Visual Studio 2010でC#/ .Net 4.0を使用してPowerShell 3.0 cmdletを開発しています。ユーザーがcmdletを実行する現在のディレクトリをPowerShellで取得したいと考えています。しかし、Directory.GetCurrentDirectory()は期待どおりに動作しません。下のコードでは、結果はC:\ Users \ Administratorです。PowerShellコマンドレットで現在のディレクトリを取得するにはどうすればよいですか?

質問:PowerShellの現在のディレクトリを取得するのに、cmdletコードは使用されていますか?

[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

$(取得-場所)または$ PWD –

答えて

20

PowerShellプロセスは複数のRunspacesを持つことができるため、単一のグローバルディレクトリはPowerShellでは機能しません。 PowerShellでは、現在のディレクトリはレジストリ内に存在し、ファイルシステム内には存在しない可能性があります。私は、レジストリについて考えhadnt

this.SessionState.Path.CurrentFileSystemLocation 
+0

:しかし、あなたはそうのようなPowerShellのAPIを使ってファイルシステムのディレクトリにアクセスすることができます。それは良い点です。はい、このSessionState.Path.CurrentFileSystemLocationが機能します。ありがとう! –

関連する問題