【发布时间】:2018-08-18 11:21:48
【问题描述】:
在我目前正在处理的程序中,我想要运行 3 个 Powershell 命令并打开 Powershell 窗口,以便您查看进度。第一个是现有的 ps1 文件,我正在运行如下:
ProcessStartInfo runner = new ProcessStartInfo("powershell")
{
Arguments = $@"-ExecutionPolicy Bypass -NoProfile -File ""{scriptPath}"""
};
Process cmd = Process.Start(runner);
下一部分的代码块在执行时没有显示窗口:
var ps = PowerShell.Create();
string[] msuFiles = Directory.GetFiles(path, "*.msu");
foreach (var item in msuFiles)
{
ps.AddScript($@"DISM.exe /Online /Add-Package /PackagePath:""{item}"" /NoRestart");
}
string[] cabFiles = Directory.GetFiles(path, "*.cab");
foreach (var item in cabFiles)
{
ps.AddScript($@"DISM.exe /Online /Add-Package /PackagePath:""{item}"" /NoRestart");
}
ps.Invoke();
没有重写第二部分以像第一部分一样执行,有没有办法在单个 Powershell 实例中运行所有 3 个命令并打开窗口以便看到进度?谢谢!
【问题讨论】:
-
为什么需要 PowerShell?为什么不直接启动可执行文件?
标签: c# wpf powershell