从.NET(C#)运行批处理文件xcopy并获得结果

时间:2016-10-21 07:58:05

标签: c# .net batch-file

我有一个简单的批处理文件:

xcopy source1 dest1
xcopy source2 dest2

我想从.NET应用程序运行它,并获取进程的结果(据我所知,xcopy在成功时返回0,在失败时返回1),以检查它是否成功(两个文件都被复制)或不。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:2)

这个

有三个问题
  1. 如何执行外部命令
  2. 如何接收输出
  3. 如何解析结果
  4. 1:运行DOS - 命令非常简单:

    System.Diagnostics.Process.Start("xcopy","source1 dest1");
    

    2:现在您有两种可能性来检索输出。第一种是将命令更改为“xcopy source1 dest1 >output.txt”,然后读取txt文件。第二种是以不同的方式运行线程:

    var proc = new Process {
        StartInfo = new ProcessStartInfo {
            FileName = "xcopy",
            Arguments = "source1 dest1",
            RedirectStandardOutput = true
        }
    };
    proc.Start();
    string response=string.Empty;
    while (!proc.StandardOutput.EndOfStream) {
        response += proc.StandardOutput.ReadLine();
    }
    

    now response包含复制命令的响应。现在你所要做的就是解析返回值(3)。

    如果您在上一部分遇到问题,请搜索SO或为其撰写新问题。