C#调用cmd执行命令的问题

xiaohuanzi217 2013-07-15 09:29:08
正常操作:打开cmd后,手动输入 cd 可以打开文件夹,然后输入abaqus job=XX 就可以开始我的程序运行

但是,用C#调用cmd的时候,打开的cmd窗口毫无变化,也没有执行程序。。
代码如下,烦请指导:
Process cmd = new Process();

cmd.StartInfo.FileName = "cmd.exe";

cmd.StartInfo.UseShellExecute = false;

cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardError = true;

cmd.StartInfo.CreateNoWindow = false;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

cmd.Start();

cmd.StandardInput.WriteLine("g:");
cmd.StandardInput.WriteLine("cd TEST");
cmd.StandardInput.WriteLine("abaqus job=0713 inter");
cmd.WaitForExit();
cmd.Close();
...全文
381 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
问题解决了一部分,可以开始求解了,解决方法,加入 cmd.StartInfo.WorkingDirectory = "g:\\TEST"; 然后删掉 cmd.StandardInput.WriteLine("g:"); cmd.StandardInput.WriteLine("cd TEST"); 这两行。 新问题出现了,cmd完全无显示内容,怎么解?
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
楼上好建议~
玲cc 2013-07-15
  • 打赏
  • 举报
回复
lz做一个.bat文件并将相关的cmd命令都写在里面。然后在程序里面用Process.Start去执行.bat文件。
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
嗯,sorry ,菜鸟表述不清楚,那有没有一种方法,可以写入命令,和在cmd中写入一样?
threenewbee 2013-07-15
  • 打赏
  • 举报
回复
天知道abaqus的命令行用法。看着0713 inter也不是0713.inp啊。
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
另外,有没有可以写出需要运行的cmd命令的方法?
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
嗯,谢谢先,我也看到很多人说这样写,但是,我这样写,完全没有反应。 我是使用abaqus求解器打开位于test文件夹中的0713.inp文件。不知道怎么弄好了
threenewbee 2013-07-15
  • 打赏
  • 举报
回复
直接 Process.Start(@"cmd /k g:\test\abaqus job=0713 inter");
请叫我卷福 2013-07-15
  • 打赏
  • 举报
回复
p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = false; p.StartInfo.RedirectStandardInput = true;//重定向标准输入 p.StartInfo.RedirectStandardOutput = true;//重定向标准输出 p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); //标准输出重定向至此 接收输出 p.Start(); input = p.StandardInput;//重定向输入 p.BeginOutputReadLine(); input为输入流
xiaohuanzi217 2013-07-15
  • 打赏
  • 举报
回复
我又来自解了, cmd.StartInfo.RedirectStandardOutput = true; 输出被重定向了,当然没有输出。。。 感谢二位

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧