C#如何调用cmd程序的执行

以下程序可以用来在C# 中调用已写好的bat,并执行之, 此处假设test.bat 中内容

为:

@echo off

echo we got those parameter %0, %1

如下程序则会调用test.bat,并传入参数"first", 然后以timeout=45进行传入。

看代码:using

 

System;

using

 

System.Collections.Generic;

using

 

System.Linq;

using

 

System.Text;

using

 

System.Diagnostics;

namespace

 

ConsoleApplication10

{

 

 

class Program

{

 

 

static void Main(string[] args)

{

ExecuteProcess(

"test.bat","first",45);

}

 

 

 

public static void ExecuteProcess(string filename, string arguments, int timeout)

{

 

 

using (Process cmd = new Process())

{

 

 

Console.WriteLine("Executing: {0} {1}", filename, arguments);

cmd.StartInfo.UseShellExecute =

false;

cmd.StartInfo.RedirectStandardError =

true;

cmd.StartInfo.RedirectStandardOutput =

true;

cmd.StartInfo.CreateNoWindow =

true;

cmd.StartInfo.FileName = filename;

cmd.StartInfo.Arguments = arguments;

cmd.Start();

cmd.WaitForExit(timeout);

 

 

if (!cmd.HasExited)

{

cmd.Kill();

 

 

Console.WriteLine(string.Format("ExecuteProcess stdout: {0}", cmd.StandardOutput.ReadToEnd()));

 

 

Console.WriteLine(string.Format("ExecuteProcess stderr: {0}", cmd.StandardError.ReadToEnd()));

 

 

throw new Exception("ExecuteProcess times out.");

}

 

 

if (0 != cmd.ExitCode)

{

 

 

Console.WriteLine(string.Format("ExecuteProcess stdout: {0}", cmd.StandardOutput.ReadToEnd()));

 

 

Console.WriteLine(string.Format("ExecuteProcess stderr: {0}", cmd.StandardError.ReadToEnd()));

 

 

throw new Exception("ExecuteProcess fails.");

 

}

}

}

}

 

执行结果为:

Executing: test.bat first

Press any key to continue . . .

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值