Batch file 如何使.exe应用程序从批处理文件读取输入,而不是从键盘键入输入(多次运行)

Batch file 如何使.exe应用程序从批处理文件读取输入,而不是从键盘键入输入(多次运行),batch-file,Batch File,我有一个来自visual compaq combiler的.exe文件。为了运行,我必须从键盘上给它一些变量,比如输入的路径,带参数的文件名,输出的路径e.t.c 我想写一个批处理文件,以便多次运行exe,但我不知道如何使exe文件直接从批处理文件读取输入,以避免我自己一直提供输入 非常感谢试试这个: @echo off >input.txt echo input line 1 >>input.txt echo input line 2 >>input.txt ec

我有一个来自visual compaq combiler的.exe文件。为了运行,我必须从键盘上给它一些变量,比如输入的路径,带参数的文件名,输出的路径e.t.c

我想写一个批处理文件,以便多次运行exe,但我不知道如何使exe文件直接从批处理文件读取输入,以避免我自己一直提供输入

非常感谢

试试这个:

@echo off
>input.txt echo input line 1
>>input.txt echo input line 2
>>input.txt echo input line 3
>>input.txt echo input line 4
exefile.exe <input.txt
如果这不起作用,那就试试看

type input.txt | exefile.exe
如果两者都不起作用,那么您的exe文件不接受标准输入


如果它确实起作用,那么批处理文件可以帮助启动多个管路。

您可以避开管道操作员。如果在cmd行中键入“dir>dir.txt”,它将重新定向,或者将输出通过管道传输到文件,而不是标准输出。类似地,您可以使用另一个符号“,如果批处理文件仅用于执行.exe文件的几次,并且不包含批处理逻辑,那么您可以直接将所有键盘输入放在一个文件中(可能有任何扩展名,如.txt),并将该文件输入cmd.exe。这个技巧使得文件的创建更加简单,因为它不需要多次重定向,也不需要echo命令。例如:

commandFile.txt:

echo off
rem Execute first run:
exefile.exe
first run input line 1
first run input line 2
END
rem Execute second run:
exefile.exe
second run input line 1
second run input line 2
END
rem Terminate the cmd.exe session
exit
要“执行”上一个文件,请输入以下内容:

cmd < commandFile.txt
cmd
看看这里:非常感谢,它很管用。为了将来使用此链接,我必须提到input.txt文件在输入declaretion后必须包含“END”语句。输入文件内容完全依赖于EXE文件。结束不是需要的东西,除非你在正常使用中键入它-或者你指的是一个CRLF来结束最后一行?不,我的字面意思是结束作为输入文件的最后一行。否则,我的fortran无法运行返回错误消息。这可能与任何人使用的版本有关。如果您遵循foxidrive建议的第二个选项,则只需要输入,不带引号。我的意思是,在我的Fortran中,它就是这样工作的
>input.txt输入行1
的确切含义是什么?您是否打算改写
>input.txt回显行1
?重定向使用特殊字符
谢谢Aacini。我必须温习一下管道的概念,并更新每种管道的术语。谢谢你的评论,干杯。
3
3   4
10  20
100 1000
001-forumSample < sampleInput.txt > sampleOutput.txt
Enter number of pairs to add: 
00. 3 + 4 = 7
01. 10 + 20 = 30
02. 100 + 1000 = 1100
echo off
rem Execute first run:
exefile.exe
first run input line 1
first run input line 2
END
rem Execute second run:
exefile.exe
second run input line 1
second run input line 2
END
rem Terminate the cmd.exe session
exit
cmd < commandFile.txt