You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows CMD执行带输入的EXE并重定向输出,如何保留输入回显?

解决Windows CMD重定向EXE输出时缺失输入内容的问题

问题原因

当使用 test.exe < input.txt > output.txt 命令时,程序的提示信息会正常输出到文件,但输入的数值不会显示在输出里。这是因为直接运行程序时,输入内容的回显是Windows控制台的默认行为;而重定向输入后,输入从文件读取,控制台不再参与回显,所以这些数值不会被写入输出文件。

简单解决方法

方法1:手动组合提示与输入,再追加程序输出

假设你的input.txt内容为:

3
2
0

执行以下CMD命令即可生成符合预期的输出文件:

@echo off
:: 先写入提示和对应的输入内容
echo Enter top, an integer between 3 and 29 (including): 3 > output.txt
echo Enter side, an integer between 2 and 20 (including): 2 >> output.txt
echo Enter 0 for left-tilt or 1 for right-tilt of the side: 0 >> output.txt
echo. >> output.txt
:: 运行程序并将结果追加到文件
test.exe < input.txt >> output.txt

这个方法直接模拟了手动运行程序时的提示+输入格式,再把程序的运行结果追加进去,最终的output.txt就会和直接运行程序的输出完全一致。

方法2:批量匹配提示与输入(适用于输入内容不固定的情况)

如果input.txt的每行对应程序的一个输入提示,可以用PowerShell命令自动关联提示和输入:

# 读取输入内容和对应的提示文本
$inputLines = Get-Content input.txt
$promptTexts = @(
    "Enter top, an integer between 3 and 29 (including): ",
    "Enter side, an integer between 2 and 20 (including): ",
    "Enter 0 for left-tilt or 1 for right-tilt of the side: "
)

# 先将提示+输入写入输出文件
$outputContent = @()
for ($i=0; $i -lt $inputLines.Count; $i++) {
    $outputContent += "$($promptTexts[$i])$($inputLines[$i])"
}
$outputContent += ""
$outputContent | Out-File -FilePath output.txt -Encoding Default

# 运行程序并将结果追加到文件
.\test.exe < input.txt >> output.txt

内容的提问来源于stack exchange,提问作者抹茶抹茶

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:43:10