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

12

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

myCode.exe < input.txt

在input.txt中:

2
3
8

现在我想将命令放入批处理文件中,我该如何编写批处理文件? (此处我想在批处理文件中传递3个固定整数)

谢谢!


我假设你正在尝试在没有外部输入文件的情况下完成这个任务? - lc.
是的。不需要外部文件。那三个数字在用户第一次设置批处理文件后应该固定。 - Helen
4个回答

14

这也可能有效:

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

+1,但根据问题的措辞,提问者可能需要更简单的 echo 1 2 3|mycode.exe - dbenham
@dbenham 我也有同样的疑问,所以我刚刚编辑了这个问题——它们确实在不同的行上。 - foxidrive

5

试试这个:

run.bat:

myCode.exe %1 %2 %3

调用示例:

run.bat 111 222 333

使用文件:

run.bat < input.txt


1
这是一个一行命令的批处理程序,它将为您创建文件并将其作为输入提供给myCode.exe
echo 2 3 8 > output & myCode.exe output

否则,您可能需要修改程序以直接从命令行读取参数。 将程序标准输入/输出/错误流重定向到或从文件中是可能的,但我认为没有办法将命令行内容重定向到标准输入流。请查看此页面了解有关批处理重定向的详细信息。

现在代码是用C#编写的,并使用Console.readLine()获取输入。我可能需要在2和3之间添加换行符。 - Helen
在批处理文件中嵌入换行常量,请查看这里。您可能只需要在一行上使用三个echo语句。 - Vladimir Sinenko
echo 9 && echo. && echo 19 && echo. $$ echo 2 > output | myCode.exe output 我会尝试看看这是否有效。谢谢Vladimir! - Helen
2
将命令用 & 分隔是标准做法,而不是使用管道符号 |,因为后者会让新手感到困惑,并教给他们错误的做法。 - foxidrive
@foxidrive,完全同意。已相应编辑答案。 - Vladimir Sinenko
OP希望避免使用临时文件,而且代码不能使用传递的临时文件名作为参数来运行;必须将其用作重定向输入。 - dbenham

0
尝试 type input.txt | myCode.exe

cat不是本地的cmd命令,而是Unix命令(type命令基本上具有相同的功能,但选项较少)。 - Stephan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接