gpt4 book ai didi

windows - 在仅采用交互式参数的命令行上自动化可执行文件(无法在执行时指定参数)

转载 作者:可可西里 更新时间:2023-11-01 11:15:33 24 4
gpt4 key购买 nike

我有一个可以从命令行交互式运行的可执行文件。这是它的样子:

C:\Users\Me> my_executable.exe  # Running the executable from CMD

Welcome! Please choose one:
0: Exit
1: Sub-task 1
2: Sub-task 2
Enter your input: 2 # I entered this interactively

Sub-task 2 chosen.
Please choose next option:
0: Return to previous menu
1: Connect to server
2: Disconnect from server
3: Call server API 1
4: Call server API 2
Enter your input: 1 # I entered this interactively

我无法使用标志预先指定输入参数。例如,这种方法无效:

C:\Users\Me> my_executable.exe 2 # Running the executable from CMD with first argument specified

Sub-task 2 chosen.
Please choose next option:
0: Return to previous menu
1: Connect to server
2: Disconnect from server
3: Call server API 1
4: Call server API 2

Enter your input:

使用批处理文件自动执行此操作的正确方法是什么?我遇到了类似的要求 in this SO thread ,但区别在于那里的可执行文件采用命令行参数(与我的情况不同)。

最佳答案

假设您的可执行文件读取标准输入,并且不直接访问键盘,那么您可以使用重定向或管道来提供完成运行所需的所有响应.

假设您想要您指定的 2、1 响应,但是在实现服务器连接后,exe 循环回到第一个菜单。假设你想退出,你还需要跟进 0。

要使用重定向,您需要准备一个包含所有所需响应的文本文件,每行一个响应。

@echo off
> response.txt (
echo 2
echo 1
echo 0
)
my_executable.exe < response.txt
del response.txt

或者您可能更喜欢使用 FOR 循环

@echo off
(for %%A in (2 1 0) do echo %%A) > response.txt
my_executable.exe < response.txt
del response.txt

如果你使用管道,你可以避免临时文件

@echo off
(
echo 2
echo 1
echo 0
) | my_executable

或者使用 FOR 循环

@echo off
(for %%A in (2 1 0) do echo %%A) | my_executable

关于windows - 在仅采用交互式参数的命令行上自动化可执行文件(无法在执行时指定参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com