向命令行发送参数

3

我需要用7zip的命令行版本解压缩文件。这个一行代码可以完成任务:

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

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


你正在启动的进程是cmd,它是一个命令行。你不需要这样做。只需调用7zip可执行文件即可。 - cadrell0
3个回答

4

尝试:

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

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

尝试

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接