我正在使用一个测试硬盘的工具 fstest.exe。它从命令行运行良好,显示执行各种文件创建/删除/修改任务需要多长时间。从命令行 as 运行时,通常的输出fstest.exe otherParams
如下所示:
---
CPU Usage: 0.0%
Disk reads/sec: 0
Disk writes/sec: 0
Disk bytes/read: 0
Disk bytes/write: 0
Test duration: 0 milliseconds, 1153 ticks (3507177 ticks/sec)
---
问题是,当我将输出重定向到文件时,它不显示任何内容:
fstest.exe otherParams > out.txt
创建一个空的 out.txt 文件,即使该命令执行得很好(并创建了一些测试文件作为其执行的一部分)。
如何强制此应用程序将输出重定向到文件?我尝试使用 PowerShell(通过 Start-Process)更仔细地查看它,标准输出和标准错误流都是空的。
我尝试过的其他事情:
cmd /c "fstest.exe otherParams > out.txt"
fstest.exe otherParams 2>&1 >> out.txt
fstest.exe otherParams | sort
powershell Start-Process -FilePath .\fstest.exe -ArgumentList @("create2", "-openexisting") -RedirectStandardOutput out.txt -RedirectStandardError err.txt -wait
(这会创建 out.txt 和 err.txt,两者都是空的。)
什么会导致应用程序根据它是否被重定向而改变其输出,有什么方法可以让它重定向到文件?
更新:我已经掌握了源代码。它是 C++,输出只是简单的printf
语句。