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

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

myCode.exe < input.txt

在 input.txt 中:

2
3
8

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

谢谢!

【问题讨论】:

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

标签: batch-file command


【解决方案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 命令的作用基本相同,但选项更少)。
    猜你喜欢
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多