我有一个PowerShell脚本,我想从EXE触发。
已经尝试或不能做的事情:
通过简单地创建Process并启动它来尝试:
Process p = new Process();
p.StartInfo = new ProcessStartInfo("powershell.exe");
p.StartInfo.Arguments = @"-Executionpolicy unrestricted C:\script\ms.ps1";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
上面的代码正在运行,但它会闪烁黑色cmd窗口一毫秒左右。
尝试使用以下源代码:https://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C
string scriptText = System.IO.File.ReadAllText(@"C:\script\ms.ps1");
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
pipeline.Invoke();
runspace.Close();
与上述问题相同,闪烁黑色窗户几秒钟。
回答以下任何问题都可以解决我的问题?
- 感谢
答案 0 :(得分:0)
您好!您可以选择" Windows应用程序"而是在项目属性中 控制台
也许它可以帮助你:/闪烁黑色cmd windows /
此外,您可以在不运行脚本的情况下运行命令(类似于 此):
string MyCommand = "-Command &{ if (!(Test-Path 'c:\\test')) {md 'c:\\test'; get-process | Out-File c:\\test\\MyFile.txt}}";
ProcessStartInfo MyProcInfo = new ProcessStartInfo();
MyProcInfo.FileName = "powershell.exe";
MyProcInfo.Arguments = MyCommand;
Process MyProcess = new Process();
MyProcess.StartInfo = MyProcInfo;
MyProcess.Start();
MyProcess.WaitForExit();