将命令读入命令行C#

时间:2016-03-01 19:23:03

标签: c# command-line command

基本上我想做的是能够取一个字符串

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命令行中执行任何可用命令。我的目标是远程访问命令行并能够向其发送任何命令。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用cmd类启动Process应用程序,并将输入重定向到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);