如何将Cinebench命令行日志输出至文件并过滤无关内容
解决Cinebench输出捕获与过滤问题
我明白你在Windows命令行下遇到的困扰——熟悉Linux的重定向逻辑,但Windows的start命令有特殊行为,导致你之前的输出重定向没按预期工作。这里有一个能直接满足所有需求的命令:
start /b /wait "parentconsole" Cinebench.exe g_CinebenchAllTests=true g_CinebenchMinimumTestDuration=1 2>&1 | findstr /v /b /c:"Loading" /c:"Finalizing" > "C:\Test Results\CPUBench.txt"
命令拆解说明
让我逐个部分解释,帮你理解背后的逻辑:
start /b /wait "parentconsole" Cinebench.exe ...:保持后台运行状态并等待Cinebench测试完全结束,"parentconsole"是必填的窗口标题(如果省略,start会把后续的Cinebench参数当成标题处理,导致命令失效)。2>&1:将Cinebench的标准错误输出重定向到标准输出,确保所有控制台内容(包括可能的模块加载提示类信息)都能被统一捕获,不会遗漏任何内容。findstr /v /b /c:"Loading" /c:"Finalizing":/v:反向匹配规则,即排除符合条件的行;/b:仅匹配行开头的指定字符串,避免误删其他偶然包含"Loading"/"Finalizing"的行(虽然你的输出里没有这类情况,但这样写更严谨);/c:"...":明确指定要排除的精确字符串。
> "C:\Test Results\CPUBench.txt":将过滤后的最终结果覆盖写入目标文件(Windows命令行中>默认就是覆盖模式,每次运行都会清空之前的文件内容)。
额外优化提示
如果C:\Test Results目录还不存在,运行命令会报错。可以在批处理文件开头添加一行,确保目录存在且不弹出冗余提示:
mkdir "C:\Test Results" 2>NUL
2>NUL会屏蔽"目录已存在"的错误提示,让脚本运行更干净。
内容的提问来源于stack exchange,提问作者Tristan Douglas
相关产品推荐
相关产品推荐

