【问题标题】:How to give interactive inputs in a single line for .exe windows如何在单行中为 .exe 窗口提供交互式输入
【发布时间】:2016-10-18 06:49:42
【问题描述】:

我正在尝试自动化一个涉及向 .exe 实用程序提供交互式输入的过程。它期望每个步骤的用户输入。我想一次性给出所有这些值,同时只给出那个命令。例如:./test.exe 8\n1\n0 等。我尝试了多种方法来为“test.exe”实用程序提供输入,例如8\n1\n0 | ./test.exe8,1,2 | ./test.exe。这些都不起作用。任何帮助如何将这些选项 8,1,2 在单行中传递给交互式实用程序 test.exe,以便对我的自动化有所帮助

【问题讨论】:

标签: windows powershell automation


【解决方案1】:

没有固定的方法可以使用 Powershell 自动执行第 3 方程序。并非所有实用程序都提供这样做的能力。

  1. 我会在实用程序文档中查找任何开关。

  2. 尝试以下操作,看看是否可以获得任何内置帮助:test.exe -h、test.exe /h、test.exe /?、test.exe -?

  3. 使用 sysinternals 字符串实用程序尝试在 exe 中找到任何可以利用的命令行开关。 https://technet.microsoft.com/en-us/sysinternals/strings.aspx?f=255&MSPPError=-2147217396

【讨论】:

    【解决方案2】:

    答案完全取决于您的可执行文件的工作方式。

    如果可执行文件从标准输入读取,您可以将输入重定向到它,如下所示(PowerShell):

    PS C:\> 8,1,2 | .\test.exe
    

    如果可执行文件不从标准输入读取或清除控制台输入缓冲区,这将不起作用。

    可执行文件还可以让您提供指定所需输入的命令行参数,但这取决于可执行文件。

    【讨论】:

    • 谢谢比尔。该可执行文件不接受命令行中给出的任何类型的输入。看起来 exe 不接受来自命令行的输入或任何参数。我们是否可以通过在该实用程序提示选项时以某种方式向该实用程序发送输入来自动化它?
    • 不,不使用正常方式。您需要询问作者和/或实验。如果可执行文件旨在禁止自动化,那么您可能无能为力。
    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 2021-05-15
    • 2012-07-13
    • 2020-05-05
    • 2010-09-08
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多