从C#中打开命令提示符窗口
从C#中打开命令提示符窗口
我想从C#代码中打开Windows命令提示符,并希望从其中执行包含几个命令的批处理文件。我尝试了简单的"echo"和"dir"命令进行试验,但它不起作用。我既没有得到错误,也没有得到预期的输出。至少应该打开cmd窗口,然后可以传递参数。
我尝试了两个选项 - 运行cmd.exe和运行批处理文件。我找不到在代码中犯的错误。提前感谢您的帮助。
var baseDirectory = "~/App_Data/TestRoot"; ProcessStartInfo processStartInfo = new ProcessStartInfo(); processStartInfo.UseShellExecute = false; processStartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath(baseDirectory); processStartInfo.CreateNoWindow = false; processStartInfo.WindowStyle = ProcessWindowStyle.Maximized; //运行cmd.exe然后将.bat作为参数 processStartInfo.FileName = HttpContext.Current.Server.MapPath(baseDirectory + "/cmd.exe"); processStartInfo.Arguments = HttpContext.Current.Server.MapPath(baseDirectory + "/test.bat"); Process process = Process.Start(processStartInfo);
我更改了FileName并删除了第二个选项的Arguments属性,请参考下面的代码。
processStartInfo.FileName = HttpContext.Current.Server.MapPath(baseDirectory + "/test.bat");
test.bat文件只包含一行代码echo hello。当我尝试直接从CMD运行它并双击时,在两种情况下都正常工作。只有在从C#代码中调用时才会出现问题。
我在输出流中不会得到任何结果。该批处理文件将在后台运行一个进程,该进程不会返回任何输出流。这不是重复问题,请不要将其标记为重复。