2013-05-01 127 views
-3

我正在C#应用程序中执行cmd中的两个命令。在使用C#执行cmd命令时出现的问题

  1. 重命名文件

    string commandToExecute; 
    commandToExecute = @"/c ren E:\filename filename.rar"; 
    Process.Start("cmd.exe", commandToExecute); 
    
  2. 的unrar-ING文件

    commandToExecute = @"/c unrar e E:\filename.rar"; 
    Process.Start("cmd.exe", commandToExecute); 
    

代码的第一部分工作,但第二部分没有,虽然当我手动输入cmd时,它正在工作。我注意到,在C#中执行时,它会再次运行应用程序(如递归)。我不知道为什么。

注:我使用的是64位Windows 7

+3

你没有调用你的程序'unrar',是吗? – RichieHindle 2013-05-01 10:56:04

+0

unrar不是我的程序。它提取.rar文件 – 2013-05-01 11:01:35

+0

不应该在第一部分'E:\ filename filename.rar'中的文件路径使用双引号,因为它包含空格吗? – Bridge 2013-05-01 11:04:31

回答

2

记住的Process.Start启动另一个进程。如果这些命令需要连续运行,则需要从Process.Start中获取一个Process对象并调用WaitForExit方法。