Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在当前cmd.exe上下文中执行shell命令?_C#_.net_Shell_Path_Cmd - Fatal编程技术网

C# 如何在当前cmd.exe上下文中执行shell命令?

C# 如何在当前cmd.exe上下文中执行shell命令?,c#,.net,shell,path,cmd,C#,.net,Shell,Path,Cmd,所以,我有一个.Net实用程序。我需要使用一个实用工具(ilasm和ildasm),它有时在PATH变量中,有时不在。它位于路径中的特定时间包括使用Visual Studio命令行脚本时。。当它不是时,你只是启动一个普通的cmd.exe实例 我看到的所有从.Net执行shell命令的信息都表明,您可以创建一个新的cmd.exe实例,但在本例中,PATH变量将有所不同。另一种可能的方法是手动解析PATH变量,并在找到时直接使用ProcessStartInfo执行它,但这似乎很容易出错,而且没有必要

所以,我有一个.Net实用程序。我需要使用一个实用工具(ilasm和ildasm),它有时在PATH变量中,有时不在。它位于路径中的特定时间包括使用Visual Studio命令行脚本时。。当它不是时,你只是启动一个普通的
cmd.exe
实例

我看到的所有从.Net执行shell命令的信息都表明,您可以创建一个新的cmd.exe实例,但在本例中,PATH变量将有所不同。另一种可能的方法是手动解析PATH变量,并在找到时直接使用
ProcessStartInfo
执行它,但这似乎很容易出错,而且没有必要


有没有什么工具或东西可以帮我解决这个问题?我应该如何执行这些实用程序

启动cmd.exe时,可以设置其环境路径:

 var psi = new ProcessStartInfo("cmd.exe");
 psi.UseShellExecute = false;
 psi.EnvironmentVariables["path"] = "mypath";
 Process.Start(psi);

请在投票前发表评论。

检查您的常规环境是否有一些
VS*
变量(只需在命令提示符中键入
set VS
)-您可以使用它们来定位工具,而不是路径。。。或者简单地修改系统(或用户)路径以包含VS PATH(如果它只适合您)。为什么要启动
cmd.exe
?为什么你不尝试调用的程序(如果这是你正在做的)?有时怎么可能?你是不是交替使用
VS命令提示符
和常规
cmd
?@Nayan,作为澄清,如果我错了,请纠正我,但他正在制作一个从
VS cmd
常规cmd
启动的程序。此开关将更改其程序的
路径
变量,因此当他运行进程时,这将受到影响。虽然我仍然不清楚他到底在问什么和他的工作流程。@gunr2171基本上,我想从我的.Net实用程序中执行ilasm和ildasm(默认情况下不包括在系统路径中,但在Visual Studio脚本中),而不必硬编码路径或搜索注册表或其他一些荒谬的方法。当从常规命令行执行时(当PATH没有ilasm/ildasm时),我可以看到一条错误消息,但是当从visualstudio命令行执行时,它在PATH中,我希望能够利用这一点为什么缺少示例、缺乏清晰度、缺少答案?