10

我正在cmdlet使用 Visual Studio 2010 中的 C#/.Net 4.0 开发 PowerShell 3.0。我想在 PowerShell 中获取用户执行cmdlet. 但是 Directory.GetCurrentDirectory() 没有按预期工作。在下面的代码中,结果是 C:\Users\Administrator。

问题:使用什么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;
    }
}
4

1 回答 1

24

一个 PowerShell 进程可以有多个运行空间,因此单个全局目录不适用于 PowerShell。除此之外,在 PowerShell 中,您的当前目录可能在注册表中,而不是在文件系统中。但是,您可以使用 PowerShell API 访问文件系统目录,如下所示:

this.SessionState.Path.CurrentFileSystemLocation
于 2012-12-16T02:26:37.117 回答