Прежде всего, я люблю вопрос. Я серьезный фанат PowerShell и люблю узнавать что-то новое о PowerShell почти каждый день.
Теперь ответим.
Вот что я собираюсь сделать. Во-первых, я собираюсь открыть PowerShell, не открывая окно. Затем я собираюсь запустить команду Get-Process, поскольку она предоставляет некоторую полезную информацию. Наконец, я собираюсь распечатать результаты на экране, а затем подождать, пока пользователь нажмет любую клавишу, чтобы убедиться, что он увидел ответ. (Если вы хотите, чтобы это было в строке, посмотрите на StringBuilder.) Это в основном сделает то, что вы просили; выполните одну простую команду и получите вывод.
Вот код.
using System;
using System.Diagnostics;
namespace powershellrun {
public class program {
public static void Main(string[] args) {
//Open up PowerShell with no window
Process ps = new Process();
ProcessStartInfo psinfo = new ProcessStartInfo();
psinfo.FileName = "powershell.exe";
psinfo.WindowStyle = ProcessWindowStyle.Hidden;
psinfo.UseShellExecute = false;
psinfo.RedirectStandardInput = true;
psinfo.RedirectStandardOutput = true;
ps.StartInfo = psinfo;
ps.Start();
//Done with that.
//Run the command.
ps.StandardInput.WriteLine("Get-Process");
ps.StandardInput.Flush();
ps.StandardInput.Close();
ps.WaitForExit();
//Done running it.
//Write it to the console.
Console.WriteLine(ps.StandardOutput.ReadToEnd());
//Done with everything.
//Wait for the user to press any key.
Console.ReadKey(true);
}
}
}
Это должно сделать работу за вас.