C#如何调用cmd程序的执行
2009-09-07 17:01
507 查看
以下程序可以用来在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 . . .
为:
@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 . . .
相关文章推荐
- c#关闭系统进程以及如何调用cmd并执行命令
- C#程序调用cmd.exe执行命令
- c# 程序调用cmd执行命令如SVN.exe
- c#调用CMD执行程序
- C# 程序调用 cmd 执行命令
- C#程序调用cmd执行命令
- c#关闭系统进程以及如何调用cmd并执行命令
- C#程序调用cmd执行命令
- C#程序调用cmd执行命令-MySql备份还原
- C#程序中调用cmd执行命令
- C#程序调用CMD执行命令
- C#程序调用cmd执行命令
- C# 如何调用可执行程序传参
- C#程序调用cmd.exe执行命令
- C#程序调用cmd执行命令(转)
- C# WINForm 如何关闭系统进程,调用cmd并执行命令(隐藏CMD窗口) - 赤色火焰 - 京华志
- c#关闭系统进程以及如何调用cmd并执行命令
- 关闭系统进程,以及如何调用CMD并执行命令
- 如何在Windows的cmd下让程序在后台执行?
- C#中利用process类调用外部程序以及执行dos命令