如何在c#代码中从powershell中检索pwd的值



我至少花了3个小时寻找答案,但没有成功
所有地方都只是一段代码,我不知道如何将它们连接在一起。

我想要实现的是:
我正在创建一个dotnet工具,我需要在其中处理当前工作目录(使用PS中的pwd命令打印的值)。Dotnet工具将安装在默认目录C:\Users\Samuel\.Dotnet\.store\myTool…中,但可以使用dotnet tool run myTool在PS中的任何目录中调用该命令

例如:
在PS中,我所在的位置是:C:\Users\Samuel\AxisRepos>并且我运行dotnet tool run myTool
在这种情况下,我想在C#代码中检索C:\Users\Samuel\AxisRepos,以找出在哪个目录中调用了命令。

简单地说,我想在我的网络工具中做这样的事情

class Program
{
static void Main(string[] args)
{
var pwd = GetPwdFromPowerShell();
}
static string GetPwdFromPowerShell()
{
string pwd = "";
// Retrieve current working directory from PS in which dotnet tool was invoked
return pwd;
}
}

pwd只是Get-Location的别名,它显示当前目录。。。

从c#中,您可以使用内置的.net类System.IO.Directory,特别是方法GetCurrentDirectory

所以只需将您的代码更新为:

static string GetPwd()
{
return System.IO.Directory.GetCurrentDirectory();
}

从powershell来看,这将产生相同的结果:

[System.IO.Directory]::GetCurrentDirectory()

相关内容

  • 没有找到相关文章

最新更新