将参数发送到命令行

时间:2012-02-24 15:33:09

标签: c# .net command-line-arguments

我需要使用命令行版本7zip解压缩压缩文件。这个班轮应该是诀窍:

Process.Start("cmd", @"C:\Users\cw\Downloads\7za920\7za e C:\UPDATED.zip -oc:\");

我正在指定7zip命令行可执行文件的路径,并告诉它要解压缩哪个文件。如果我将这些参数复制并粘贴到我的命令行窗口中,它将起作用。在C#中,它会弹出一个命令行窗口,什么都不会发生。是什么给了什么?

3 个答案:

答案 0 :(得分:4)

尝试:

Process.Start("cmd", @"/c C:\Users\cw\Downloads\7za920\7za e C:\UPDATED.zip -oc:\"); 

答案 1 :(得分:4)

这是因为您正在运行cmd.exe,而不是直接运行7za。您可以执行以下任一操作:

Process.Start(@"C:\users\...\7za", "e c:\updated.zip -oc:\");

Process.Start("cmd", @"/c c:\users\...\7za e c:\updated.zip -oc:\");

/ c标志告诉cmd在启动后运行参数。

答案 2 :(得分:2)

尝试

Process.Start(@"C:\Users\cw\Downloads\7za920\7za.exe", @"e C:\UPDATED.zip -oc:\");