如何在批处理文件中将输入传递给.exe?

Posted

技术标签:

【中文标题】如何在批处理文件中将输入传递给.exe?【英文标题】:how to pass input to .exe in batch file? 【发布时间】:2013-09-29 02:40:03 【问题描述】:

我有一个需要 3 个整数作为输入的 .exe。例如:

myCode.exe < input.txt

在 input.txt 中:

2
3
8

现在我想把命令放在一个批处理文件中。如何编写批处理文件? (这里我想在批处理文件中传递3个固定整数)

谢谢!

【问题讨论】:

我假设您正在尝试在没有带有输入的外部文件的情况下执行此操作? 是的。没有外部文件。这3个数字应该在用户第一次设置批处理文件后修复 【参考方案1】:

这也可能有效:

(
echo 2
echo 3
echo 8
) | mycode.exe

【讨论】:

+1,但是根据问题的表述方式,OP可能需要更简单的echo 1 2 3|mycode.exe @dbenham 我想知道,只是编辑了这个问题——它们确实在不同的行上。【参考方案2】:

试试这个:

运行.bat:

myCode.exe %1 %2 %3

调用示例:

run.bat 111 222 333

和文件:

run.bat &lt; input.txt

【讨论】:

【参考方案3】:

这是一个批处理单行程序,它将为您创建文件并将其作为输入提供给myCode.exe

echo 2 3 8 > output & myCode.exe output

否则,您可能需要修改程序以直接从命令行读取参数。

可以将程序标准输入/输出/错误流重定向到文件或从文件重定向,但我认为没有办法将命令行内容重定向到标准输入流。看看at this page for details on batch redirection.

【讨论】:

现在代码在 C# 中并且使用 Console.readLine() 来获取输入。我可能需要在 2 和 3 之间添加换行符。 看看here 在批处理文件中嵌入换行符常量。您可能只需要一行中的三个 echo 语句。 回声 9 && 回声。 && 回声 19 && 回声。 $$ 回声 2 > 输出 | myCode.exe 输出如果可行,我会尝试。谢谢弗拉基米尔! 标准做法是用 & 符号 command1 &amp; command2 分隔命令,因为管道会混淆新手并教他们错误的做法。 @foxidrive,绝对同意。相应地编辑了答案。【参考方案4】:

试试type input.txt | myCode.exe

【讨论】:

cat 不是原生的cmd 命令,而是一个unix 命令(type 命令的作用基本相同,但选项更少)。

以上是关于如何在批处理文件中将输入传递给.exe?的主要内容,如果未能解决你的问题,请参考以下文章

如何传递运行时参数以从批处理文件启动 exe

从批处理文件运行python脚本时,如何自动将输入值传递给python“输入”函数

如何在角度 2 中将输入值转换为大写(传递给 ngControl 的值)

如何在 C 语言中将输入和检索输出传递给子进程

在pyinstaller中添加2个数据文件,并在脚本编写的函数中将它们用作变量

如何将参数(不是命令行参数)传递给批处理脚本中的函数