C# 如何以编程方式执行7za list命令并将结果输出到文件?
使用命令提示符中的origional测试,我能够将7za list命令的结果(使用findstr)输出到文本文件,并且我需要在我的应用程序中使用相同的行为 直接使用其他命令执行C# 如何以编程方式执行7za list命令并将结果输出到文件?,c#,cmd,7zip,C#,Cmd,7zip,使用命令提示符中的origional测试,我能够将7za list命令的结果(使用findstr)输出到文本文件,并且我需要在我的应用程序中使用相同的行为 直接使用其他命令执行7za.exe,如findstr或重定向操作符>,结果是退出代码7 如何以编程方式(C#)执行7za命令,根据findstr命令列出内容并最终将结果写入文本文件?经过一些研究和测试,我能够运行cmd.exe并将命令写入进程。我也不必调用exit Process cmdProcess = new Process(); Pro
7za.exe
,如findstr
或重定向操作符>
,结果是退出代码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();
请注意:如果您正在编写windows服务,cmd将无法可靠运行。通过调用cmd,系统假设您处于交互模式。但是,类似的代码也可以实现同样的效果:只需直接调用“7za.exe”(processStartInfo.FileName=“…/7za.exe”)&使用StreamWriter编写StandardOutput@Ho再见,谢谢你的建议!我得去看看。