Board logo

标题: [代码合集] DOS命令在C#中怎么调用 [打印本页]

作者: 【灵长类】    时间: 2011-6-22 16:13     标题: DOS命令在C#中怎么调用

p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.CreateNoWindow = false;
            p.Start();
            p.StandardInput.WriteLine("start explorer");//这个括号里该怎么写命令?我发现好多命令都执行不了啊
            p.StandardInput.WriteLine("exit");
            string s = p.StandardOutput.ReadToEnd();
            p.Close();
作者: CrLf    时间: 2011-6-22 16:44

内部命令要用cmd解释执行。
加个cmd /c就行了,
  1. p.StandardInput.WriteLine("cmd /c start explorer");
复制代码

或者不要使用内部命令
  1. p.StandardInput.WriteLine("explorer");
复制代码

作者: 【灵长类】    时间: 2011-6-23 17:53

2# zm900612
是这样写吗?比如写一个dir e:\的命令,设为显示cmd窗体,我发现还是不显示任何内容啊
作者: CrLf    时间: 2011-6-23 18:19

pause也是内部命令啊...
而且把命令分开来写,他们已经不是作用于同一个cmd中了的吧,试试这样:
  1. p.StandardInput.WriteLine("cmd /c start explorer&pause");
复制代码

作者: 【灵长类】    时间: 2011-6-24 23:30

4# zm900612

这样会弹出两个空窗口 = = 本想做一个打开软件和强制关软件的快捷方式的,就像桌面的图标一样,每点一个按钮就执行一句命令,但发现taskkill start+路径 等都会报错,至今没找到c#里dos命令怎么写。
不过也无所谓了,已经学会调用批处理文件了。但为每个按钮都写一个批处理太繁琐了= =
作者: CrLf    时间: 2011-6-25 12:09

不太清楚
不过写到一个批处理中可以用函数的形式呀:
  1. ::在 C# 中使用“1.bat explorer”调用
  2. goto :%1
  3. :explorer
  4. start explorer
  5. pause
  6. exit
  7. :dir
  8. dir /b e:\
  9. pause
  10. exit
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2