如何通过批处理命令将命令发送到通过命令行运行的EXE?

Sab*_*eok 3 command cmd exe pipe batch-file

我有一个运行名为TerrariaServer.exe的服务器应用程序,我希望能够使用单独的批处理文件发送命令.TerrariaServer.exe是一个作为命令行运行的程序.我怎么能"喂"它一个命令,如"保存"和"退出"?答案可能是管道,但我不太确定.这是有点我在TerrariaServer.exe运行时在批处理文件中执行的...

@echo off
echo save | TerrariaServer.exe
echo exit | TerrariaServer.exe
Run Code Online (Sandbox Code Playgroud)

在那之后,什么都没发生.我不知道你是否需要知道这个,但这是一个视频游戏服务器,并带有"保存/退出"命令.

Sha*_*riq 5

Eep,使用类型进行多行输入!

echo save | TerrariaServer.exe
Run Code Online (Sandbox Code Playgroud)

将打开TerrariaServer.exe并发送"save"作为输入.

echo exit | TerrariaServer.exe
Run Code Online (Sandbox Code Playgroud)

将打开TerrariaServer.exe并发送"exit"作为输入.

看到问题了吗?:P

您正在执行TerrariaServer.exe 两次!

您应该使用命令类型.您可以在可执行文件的输入中键入文本文档.首先,让我们创建这个文本文档(或任何文件;扩展无关紧要!)

echo save>somefile.txt
echo exit>somefile.txt
Run Code Online (Sandbox Code Playgroud)

现在让我们输入TerrariaServer.exe ...

type somefile.txt | TerrariaServer.exe
Run Code Online (Sandbox Code Playgroud)

我们完成后可能会删除somefile.txt吗?

del somefile.txt
Run Code Online (Sandbox Code Playgroud)

希望能把事情搞清楚!:)