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();
}
}
答案 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
)并处理它的输出。