我至少花了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()