Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式执行7za list命令并将结果输出到文件?_C#_Cmd_7zip - Fatal编程技术网

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

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

使用命令提示符中的origional测试,我能够将7za list命令的结果(使用findstr)输出到文本文件,并且我需要在我的应用程序中使用相同的行为

直接使用其他命令执行
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再见,谢谢你的建议!我得去看看。