PowerShell Runner
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
namespace PowerShellRunner
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (args == null || args.Length == 0)
{
MessageBox.Show(
"No PowerShell script file was specified."
, "PowerShellRunner - Argument Error"
, MessageBoxButtons.OK
, MessageBoxIcon.Error
);
return;
}
if (!File.Exists(args[0]))
{
MessageBox.Show(
string.Format("The file '{0}' does not exist or can not be accessed.", args[0])
, "PowerShellRunner - Argument Error"
, MessageBoxButtons.OK
, MessageBoxIcon.Error
);
return;
}
var processStartInfo = new ProcessStartInfo
{
FileName = "powershell"
, Arguments = "-file " + string.Join(" ", args.Select(a => "\"" + a + "\""))
, WindowStyle = ProcessWindowStyle.Hidden
};
var process = Process.Start(processStartInfo);
process.WaitForExit();
if (process.ExitCode != 0)
{
MessageBox.Show(
string.Format("PowerShell script returned an error code ({0}).", process.ExitCode)
, "PowerShellRunner - Script Error"
, MessageBoxButtons.OK
, MessageBoxIcon.Error
);
}
}
}
}