如何在 C# 代码中从 powershell 检索 pwd 的值
How to retrieve value of pwd from powershell in c# code
我至少找了 3 个小时的答案,但没有成功。
到处都是代码片段,我不知道如何将它们连接在一起。
我想达到的目标:
我正在创建 dotnet-tool,我需要在其中处理当前工作目录(使用 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 以找出调用了哪个目录命令。
简单地说,我想在我的 dotnet 工具中做这样的事情:
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 class System.IO.Directory
具体方法 GetCurrentDirectory
所以只需将您的代码更新为:
static string GetPwd()
{
return System.IO.Directory.GetCurrentDirectory();
}
从 powershell 这将得到相同的结果:
[System.IO.Directory]::GetCurrentDirectory()
我至少找了 3 个小时的答案,但没有成功。
到处都是代码片段,我不知道如何将它们连接在一起。
我想达到的目标:
我正在创建 dotnet-tool,我需要在其中处理当前工作目录(使用 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 以找出调用了哪个目录命令。
简单地说,我想在我的 dotnet 工具中做这样的事情:
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 class System.IO.Directory
具体方法 GetCurrentDirectory
所以只需将您的代码更新为:
static string GetPwd()
{
return System.IO.Directory.GetCurrentDirectory();
}
从 powershell 这将得到相同的结果:
[System.IO.Directory]::GetCurrentDirectory()