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

How do I execute 7za list command programmatically and output the results to a file?

通过命令提示符中的原始测试,我能够使用 findstr 将 7za list 命令的结果输出到文本文件,我的应用程序中也需要同样的行为。

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

我如何以编程方式 (C#) 执行 7za 命令以列出基于 findstr 命令的内容并最终将这些结果写入文本文件?

经过一些研究和测试后,我能够 运行 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();