【问题标题】:How to enter text into CMD windows? [duplicate]如何在 CMD 窗口中输入文本? [复制]
【发布时间】:2024-01-17 23:50:01
【问题描述】:

我似乎找不到在 CMD 窗口中输入 1 行“命令”的可能解决方案。我搜索了 MSDN 并询问了谷歌,他们只找到了将文本输入文本文件的解决方案,但我猜这不一样。

提前谢谢你!

【问题讨论】:

  • 如果要执行命令行,那很简单:System.Diagnostics.Process.Start("cmd.exe", "/k dir /w/s"); 我不知道在现有 cmd 窗口中执行命令;这是绝对要求吗?
  • 是的,因为 cmd 窗口必须使用特定参数启动。
  • 如果您的应用程序启动该过程,那无法完成?
  • 在我看来,您正在通过批处理文件启动 Minecraft 服务器,并且您想编写一个 .NET 应用程序,以编程方式将命令行输入发送到 Minecraft 服务器,就好像用户是在键盘上输入它们。如果这不是对您的要求的完整描述,请写出完整而完整的描述,准确描述您正在尝试做的事情,不遗漏任何内容,并将其放在您的问题中。这些腼腆的猜谜游戏不会增加我解决某人问题的兴趣。
  • 请记住,像大多数人类一样,我从未见过 Minecraft 服务器并且对它一无所知,因此您需要编写您的需求,以便对完全一无所知的人有意义完全关于 Minecraft 的任何方面。想象一下,您的祖母是一位注意力不集中的中年软件工程师,曾经玩 Doom II。

标签: c# cmd


【解决方案1】:

您将不得不从您的 .NET 应用程序启动 Minecraft 服务进程。无论您现在使用的批处理文件中有什么内容,您都可以在 C# 中的 Process 启动代码中复制它,或者您可以让您的 C# 代码运行批处理文件。

如果您想要一个提供启动参数的配置文件,您可以将这些内容放在app.config 中,并让您的应用程序在启动时将它们提供给 Minecraft 服务器进程。

一旦您启动了该过程,您的应用程序就可以保留Process 对象并将重复的命令发送到其标准输入流,如this answer 中所述。

【讨论】:

  • 那么,我可以简单地告诉“开始”按钮执行一个 cmd shell,使用批​​处理文件中的参数调用服务器?
  • @Richard 如果您所指的“开始”按钮是 C# 应用程序中的一个按钮,那是可行的。
【解决方案2】:

System.Diagnostics.Process.Start("CMD.exe", [你的命令]);

【讨论】:

    最近更新 更多