如何在批处理文件中将输入传递给.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 < 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 & command2
分隔命令,因为管道会混淆新手并教他们错误的做法。
@foxidrive,绝对同意。相应地编辑了答案。【参考方案4】:
试试type input.txt | myCode.exe
【讨论】:
cat
不是原生的cmd
命令,而是一个unix 命令(type
命令的作用基本相同,但选项更少)。以上是关于如何在批处理文件中将输入传递给.exe?的主要内容,如果未能解决你的问题,请参考以下文章
从批处理文件运行python脚本时,如何自动将输入值传递给python“输入”函数
如何在角度 2 中将输入值转换为大写(传递给 ngControl 的值)