如何以编程方式执行7za list命令并将结果输出到文件?

时间:2015-06-08 19:56:47

标签: c# cmd 7zip

在命令提示符下使用原始测试,我能够将带有findstr的7za list命令的结果输出到文本文件,我在我的应用程序中需要这种相同的行为。

直接使用7za.exe等其他命令或重定向操作符findstr执行>>会导致exit code 7

如何以编程方式(C#)执行7za命令,根据findstr命令列出内容,最后将这些结果写入文本文件?

1 个答案:

答案 0 :(得分:0)

经过一些研究和测试后,我能够运行cmd.exe并向该过程编写命令。我也没有打电话给exit

Process cmdProcess = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = "cmd.exe";
processStartInfo.RedirectStandardInput = true;
processStartInfo.UseShellExecute = false;

cmdProcess.StartInfo = processStartInfo;
cmdProcess.Start();

String sevenZipListFindStrCommand = "Library\\7za.exe l \"C:\\temp\\testSource\\archive.7z\" -pXYZ | findstr /i VM >> C:\\temp\\output.txt";
using (StreamWriter streamWriter = cmdProcess.StandardInput)
{
    if (streamWriter.BaseStream.CanWrite)
    {
        streamWriter.WriteLine(sevenZipListFindStrCommand);
    }
}

cmdProcess.WaitForExit();