(1) Список команд, скорее всего, будет получен из любых исполняемых файлов, найденных в вашем% PATH%. Вы можете составить список, найдя все исполняемые файлы .exe / .bat / другие в каждой папке, указанной в% PATH%. Возможно, вам даже не нужно знать, какие приложения доступны, метод Process.Start найдет их для вас. (см. ниже)
(2) Вы можете запустить инструмент командной строки программно, используя:
System.Diagnostics.Process.Start("notepad.exe"); // located using %PATH%
Чтобы захватить вывод, вы должны перенаправить его так:
System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo(@"ipconfig");
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
System.Diagnostics.Process myProcess;
myProcess = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader myOutput = myProcess.StandardOutput; // Capture output
myProcess.WaitForExit(2000);
if (myProcess.HasExited)
{
string output = myOutput.ReadToEnd();
Console.WriteLine(output);
}
(3) Вероятно, тот же ответ, что и 1