【问题标题】:Sending arguments to the command line向命令行发送参数
【发布时间】:2012-03-15 01:25:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你启动的进程是cmd,是一个命令行。你不需要这样做。只需调用 7zip 可执行文件。

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


【解决方案1】:

试试:

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

【讨论】:

    【解决方案2】:

    这是因为您正在运行 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 在启动后运行参数。

    【讨论】:

      【解决方案3】:

      试试

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 2017-11-20
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 2011-01-09
        • 1970-01-01
        相关资源
        最近更新 更多