命令提示符中的“复制”命令出错

时间:2011-11-01 05:42:01

标签: c# copy command-prompt system.diagnostics

我正在使用'复制'来连接mpg格式的视频文件。在C#中以编程方式命令命令提示符。我可以在命令提示符下手动执行命令,它可以正常工作。

Copy /b D:\\ccc\\out0.mpg /b + D:\\ccc\\out1.mpg /b D:\\ccc\\bMPGVideo.mpg /b

但是当我以编程方式执行相同的命令时,它会抛出错误。

strCmdText = "/K Copy /b D:\\ccc\\out0.mpg /b + D:\\ccc\\out1.mpg /b D:\\ccc\bigMPGVideo.mpg /b";
System.Diagnostics.Process p = new System.Diagnostics.Process();            
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "CMD.exe";
p.StartInfo.Arguments = strCmdText;
p.StartInfo.RedirectStandardError = true;
p.Start();
MessageBox.Show(p.StandardError.ReadToEnd());

消息框显示以下消息

  

句柄无效
  文件名,目录名或卷标无效
  手柄无效
  句柄无效

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:3)

D:\\ccc\bigMPGVideo.mpg应为D:\\ccc\\bigMPGVideo.mpg

编辑 - 根据评论:

// create target file
using (FileStream Tgt = File.Create (@"D:\ccc\bigMPGVideo.mpg") )
{
    // append out0.mpg to target
    using (FileStream Out0 = File.Open (@"D:\ccc\out0.mpg"))
    {
        Out0.CopyTo (Tgt);
    }
    // append out1.mpg to target
    using (FileStream Out1 = File.Open (@"D:\ccc\out1.mpg"))
    {
        Out1.CopyTo (Tgt);
    }
}