ASP.NET CORE下运行CMD命令,用以前的ASP.NET 的命令
System.Diagnostics.Process.Start("notepad");
这样是可以运行出记事本的,
现在公司的C++大神开发了个EXE,需要放在服务器上,然后当访问服务器上的某个网页的时候就执行这个EXE了。。
传到服务器上,在服务器上运行 d:/temp/cm/cm.exe -url=http://baidu.com ,成功运行的,其中后面 -url=xxx是传过去的参数的
放在.NET CORE下运行:
System.Diagnostics.Process.Start("d:/temp/cm/cm.exe -url=http://baidu.com");
结果显示找不到文件,但是明明路径都是正确的,上网查了下,可能是权限的问题,我把cm目录全设置为everyone了,再运行测试,结果还是不行。。
再上网找啊找啊找啊,终于能运行了:
//执行CMD命令
public ActionResult OpenNotepad() {
string[] cmd = webinfo.mobilepay_cmd.Split(" "); // 数组 元素1,命令全路径d:/cm/cm.ext 元素2,参数 -url=http://163.com
string cmd2 = cmd[1].Replace("{phone}", "13607886582").Replace("{amount}","10");
log.Info($"\r\n运行CMD命令:{cmd[0]} {cmd2}");
var psi = new System.Diagnostics.ProcessStartInfo(cmd[0], cmd2);
System.Diagnostics.Process.Start(psi);
return Content("hello niunan...");
}