CMD COPY无法找到文件

时间:2012-08-18 09:15:09

标签: c# process command

C#win Forms

喜。 CMD窗口一直说“系统找不到指定的文件” 如果我在CMD窗口中输入命令“copy / b myfile.txt test.txt”它可以工作:S

btw。:有没有办法真正看到命令在CMD窗口中执行?

    public void OutputBtn_Process_Click(object sender, EventArgs e)
    {
        foreach (FileInfo fi in listBox1.Items)
        {
            Process process1 = new Process();
            process1.StartInfo.UseShellExecute = false;
            process1.StartInfo.Arguments = "copy /b \""+fi.Name+"\"test.txt";
            //process1.StartInfo.LoadUserProfile = true;
            process1.StartInfo.FileName = "cmd.exe\"/k";
            process1.StartInfo.WorkingDirectory = Path.GetDirectoryName(fi.FullName);
            process1.Start();

            process1.Dispose();
            process1.Close();
        }
    }

3 个答案:

答案 0 :(得分:2)

在test.txt前面加一个空格

copy /b \""+fi.Name+"\" test.txt";

答案 1 :(得分:2)

/ K是一个参数,应该位于不在FileName属性上的Arguments属性中 (当然,当他建议在test.txt前放置一个空格时,L.B。是正确的)

process1.StartInfo.Arguments = "/k copy /b \""+fi.Name+ "\" test.txt"; 
process1.StartInfo.FileName = "cmd.exe"; 

顺便说一句,您编写的代码在列表框中循环,并在每个循环中使用当前FileInfo项的内容重写文件test.txt。这样,列表中的最后一个文件将是将其内容复制到test.txt的文件。这个逻辑是否正确?

答案 2 :(得分:0)

可以使用xcopy并将其称为进程(而不是代码中的cmd)并处理它的输出。

Using xcopy from c#