使用c#中的参数运行cmd.exe

时间:2011-12-20 16:23:30

标签: c#

我有文件夹C:\ Temp \,它有两个文件des.exe和input.abcd。 des.exe用于解密input.abcd。在命令提示符下面的2个以上作品

cd C:\Temp\
des.exe XXXX input.abcd output.zip

为什么以下不适用于c#

        string argument1 =  "/K cd C:\\Temp\\ ";
        string argument2 = "des.exe XXXX input.abcd output.zip" ;
        System.Diagnostics.ProcessStartInfo proc = new      System.Diagnostics.ProcessStartInfo();
        proc.FileName = @"C:\windows\system32\cmd.exe";
        proc.Arguments = String.Format("{0} {1}", argument1, argument2);
        proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;            
        System.Diagnostics.Process.Start(proc); 

2 个答案:

答案 0 :(得分:8)

您无需将cmd.exe作为进程运行。您需要做的就是使用“XXXX input.abcd output.zip”参数运行“c:\ temp \ des.exe”。

System.Diagnostics.Process.Start("c:\temp\des.exe", "XXXX input.abcd output.zip"); 

如果它们与临时目录不同,请确保为您的参数提供正确的完整路径。

答案 1 :(得分:0)

您要运行的进程是dec.exe,而不是cmd.exe。试试这个,用{fullPath}替换des.exe的路径:

     string argument2 = "XXXX input.abcd output.zip";
     System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
     proc.FileName = @"C:\\Temp\\des.exe";
     proc.Arguments = String.Format("{0} {1}",  argument2);
     proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
     System.Diagnostics.Process.Start(proc);