gpt4 book ai didi

.net - 从 Dot Net MVC 4 异步执行批处理脚本

转载 作者:行者123 更新时间:2023-12-04 05:15:58 25 4
gpt4 key购买 nike

我有一个 dot net MVC 4 应用程序,我用户在其中使用“创建” View 创建请求,并基于 View 中的参数, Controller 应该异步执行 Windows 批处理脚本。

我正在使用以下代码运行批处理脚本:

Process process = new Process();

ProcessStartInfo ProcessInfo;
ProcessInfo = new ProcessStartInfo("cmd", "/c batchfile");
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = false;
ProcessInfo.RedirectStandardError = true;
ProcessInfo.RedirectStandardOutput = true;
ProcessInfo.Arguments = string.Format("{0} {1} {2}", arg1, arg2, arg3); ;

process = Process.Start(ProcessInfo);
process.WaitForExit();

控制台应用程序进程已启动,但它总是无休止地挂起/等待。标准输出日志显示:
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Program Files (x86)\IIS Express>

只有当我手动杀死它时,该进程才会退出。我尝试运行 Visual Studio 管理员模式,但没有帮助。

谁能建议我如何解决这个问题?

最佳答案

这是一个 reference article关于传递给 cmd.exe 的命令行参数我建议你检查一下。

然后像这样尝试:

var psi = new ProcessStartInfo("cmd.exe")
{
Arguments = string.Format("/k \"\"batchfile.bat\" \"{0}\" \"{1}\" \"{2}\"\"", arg1, arg2, arg3),
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true
};

using (var process = Process.Start(psi))
{
process.WaitForExit();
}

关于.net - 从 Dot Net MVC 4 异步执行批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com