【问题标题】:Reading commands into the command line C#将命令读入命令行 C#
【发布时间】:2016-06-14 09:15:26
【问题描述】:

基本上我想要做的是能够接受一个字符串

byte[] RecPacket = new byte[1000];

//Read a command from the client.

Receiver.Read(RecPacket, 0, RecPacket.Length);

//Flush the receiver

Receiver.Flush();

//Convert the packet into a readable string

string Command = Encoding.ASCII.GetString(RecPacket);

并让应用程序将其放入命令行本身,而无需用户执行。就我所做的研究而言,我找不到直接做到这一点的方法。我找到了你这样做的迂回方式

switch (Command)
{
case "SHUTDOWN":

string shutdown = Command;

//Shuts it down

System.Diagnostics.Process SD = new System.Diagnostics.Process();

SD.StartInfo.FileName = "shutdown -s";

SD.Start();

break;

}

但这似乎不起作用,并且它也不允许您执行 Windows 命令行中可用的任何命令。我的目标是远程访问命令行并能够向其发送任何命令。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: c# command-line command


【解决方案1】:

您可以使用Process 类启动cmd 应用程序,并将输入重定向到Process.StandardInput,这样您就可以在控制台中执行命令:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.UseShellExecute = false;
info.RedirectStandardInput = true;

var process = Process.Start(info);

并以这种方式使用它:

string command = "shutdown -s";
process.StandardInput.WriteLine(command);

【讨论】:

  • 好的,我这样做了,但是当我发送命令时,它会显示带有“更多?”标签的服务器的文件路径。这是什么意思?
  • 对不起,我不明白你的意思,你用的是什么命令?
  • 这张图片会解释它。 imgur.com/CJE7UDP左边是我的输入,右边是它带来的内容
猜你喜欢
  • 2011-07-06
  • 2017-05-05
  • 1970-01-01
  • 2012-04-30
  • 2015-05-16
  • 2011-05-29
  • 2021-12-19
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多