如何以编程方式执行 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();
通过命令提示符中的原始测试,我能够使用 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();