在命令提示符下使用原始测试,我能够将带有findstr的7za list命令的结果输出到文本文件,我在我的应用程序中需要这种相同的行为。
直接使用7za.exe
等其他命令或重定向操作符findstr
执行>>
会导致exit code 7
。
如何以编程方式(C#)执行7za命令,根据findstr命令列出内容,最后将这些结果写入文本文件?
答案 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();