C#运行.cmd文件

我自己在E盘建了一个text.cmd的文件,里面有一句doc命令,我现在想用c#来执行text.cmd中的doc命令,代码要怎么写呢?只写主要代码就可以,,我text.c... 我自己在E盘建了一个text.cmd的文件,里面有一句doc命令,我现在想用c#来执行text.cmd中的doc命令,代码要怎么写呢?只写主要代码就可以,,
我text.cmd文件里的doc命令是:ffmpeg.exe -i e:\1.avi -s 176x144 -b 20000 -acodec amr -ab 12200 d:\2.mp4
我如果直接把命令写在doc窗口内执行能成功!!!我现在想用C#通过运行text.cmd文件来执行里面的doc命令!!帮帮忙,,我还会加分的!!!先谢谢啦
展开
 我来答
hell280
2010-07-01 · TA获得超过181个赞
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:0
展开全部

一楼和二楼都是正解:

1.  一楼的System.Diagnostics.Process.Start("E:\text.cmd"); 代码意思就等于你用鼠标双击“text.cmd”这个文件;

这样简单易了,

2.二楼的写的就比较清楚拉,他是在程序中把“开始--运行---再输入cmd---再输入你的命令”这个命令执行一遍

3.我这边有个例子,就是查找局域网中所有IP地址的代码,愿意看下的话,我放下面拉,(我的form中放拉一个button和一个listBox控件,在下面标记的地方“就可以输入你自己的命令”)

private void button1_Click(object sender, EventArgs e)

{

            ArrayList l= GetAllLocalMachines();

            listBox1.Items.Clear();

            for (int i = 0; i < l.Count; i++)

            {

                listBox1.Items.Add(l[i]);

            }

            listBox1.Dock = DockStyle.Bottom;

            this.Controls.Add(listBox1);

static ArrayList GetAllLocalMachines()

 {

            Process p = new Process();            

            //设定程序名

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

            //关闭Shell的使用

            p.StartInfo.UseShellExecute = false;

            //重定向标准输入

            p.StartInfo.RedirectStandardInput = true;

            //重定向标准输出

            p.StartInfo.RedirectStandardOutput = true;

            //重定向错误输出

            p.StartInfo.RedirectStandardError = true;

            //设置不显示窗口

            p.StartInfo.CreateNoWindow = true;

            p.Start();

            p.StandardInput.WriteLine("arp -a");//这里就可以输入你自己的命令

            p.StandardInput.WriteLine("exit");

            ArrayList list = new ArrayList();

            StreamReader reader = p.StandardOutput;

            string IPHead = Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString().Substring(0, 3);

            for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())

            {

                line = line.Trim();

                if (line.StartsWith(IPHead) && (line.IndexOf("dynamic") != -1))

                {

                    string IP = line.Substring(0, 15).Trim();

                    string Mac = line.Substring(line.IndexOf("-") - 2, 0x11).Trim();

                    LocalMachine localMachine = new LocalMachine();

                    localMachine.MachineIP = IP;

                    localMachine.MachineMAC = Mac;

                    localMachine.MachineName = "";

                    list.Add(IP);

                }

            }

            return list;

    }

效果如下:  不知道这样对你有没有帮助~~

静听火燃
2010-07-01 · TA获得超过620个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:323万
展开全部
System.Diagnostics.Process.Start("文件的路径");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
colinsnowfox
2010-07-01 · TA获得超过248个赞
知道答主
回答量:108
采纳率:100%
帮助的人:91.2万
展开全部
首先读取命令行命令(从XP开始dos命令就不存在了,楼主的doc命令...)
只有一句,就读出来存着吧。

接下来如下:

1.使用Process类,来创建独立的进程,导入System.Diagnostics,
using System.Diagnostics;

2.实例一个Process类,启动一个独立进程
Process p = new Process();

3.Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面用到了他的几个属性:

设定程序名
p.StartInfo.FileName = "cmd.exe";

关闭Shell的使用
p.StartInfo.UseShellExecute = false;

重定向标准输入
p.StartInfo.RedirectStandardInput = true;

重定向标准输出
p.StartInfo.RedirectStandardOutput = true;

重定向错误输出
p.StartInfo.RedirectStandardError = true;

设置不显示窗口
p.StartInfo.CreateNoWindow = true;

上面几个属性的设置是比较关键的一步。

4.都设置好了启动进程吧
p.Start();

5.输入要执行的命令
p.StandardInput.WriteLine("/*指令*/");
p.StandardInput.WriteLine("exit");

6.从输出流获取命令执行结果,

string strRst = p.StandardOutput.ReadToEnd();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
misshappy是我
2015-11-15 · TA获得超过2.4万个赞
知道大有可为答主
回答量:6777
采纳率:55%
帮助的人:378万
展开全部
打开文件夹,
例如:[C:\Windows]System.Diagnostics.Process.Start("explorer", "/n, C:\\Windows");
打开[我的电脑]
System.Diagnostics.Process.Start("explorer","/n,/select, C:\");
打开文本文件, 例如
:[C:\test.txt]System.Diagnostics.Process.Start("explorer", "/n, C:\\test.txt");
打开应用程序, 例如:计算器
System.Diagnostics.Process.Start("C:\\Windows\\system32\\calc.exe");
关机命令
System.Diagnostics.Process.Start("cmd.exe","/cshutdown -s -t 1000");
远程关机
要远程关机得满足3个条件

第一 组策略里允许了 远程网络强制关机
第二 防火墙要关了
第三 GUEST这个帐户要开启

void shutdown()
{
Process commandProcess = new Process();
try
{
commandProcess.StartInfo.FileName = "cmd.exe";
commandProcess.StartInfo.UseShellExecute = false;
commandProcess.StartInfo.CreateNoWindow = true;
commandProcess.StartInfo.RedirectStandardError = true;
commandProcess.StartInfo.RedirectStandardInput = true;
commandProcess.StartInfo.RedirectStandardOutput = true;
commandProcess.Start();
commandProcess.StandardInput.WriteLine("shutdown /r /m 127.0.0.1 /t 200 /f");
commandProcess.StandardInput.WriteLine("exit");
for (; !commandProcess.HasExited; )//等待cmd命令运行完毕
{
System.Threading.Thread.Sleep(1);
}
//错误输出
string tmpout = commandProcess.StandardError.ReadToEnd();
string tmpout1 = commandProcess.StandardOutput.ReadToEnd();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (commandProcess != null)
{
commandProcess.Dispose();
commandProcess = null;
}
}

}
使用C#调用cmd.exe执行shutdown.exe命令就行。
Shutdown使您能够一次关闭或重新启动一台本地或远程计算机。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式