如何同时运行多个PowerShell脚本?

7
所以我有两个.ps1脚本,每60秒检查新任务,并且我想同时运行它们。我每天都使用它们,但启动它们有点麻烦。 理想情况下,我想写一个脚本,可以运行这两个脚本。
问题是,由于它们没有在某个时间停止,我不能只是一个接一个地启动它们,也找不到打开新PS ISE实例的命令。但是,一个实例无法同时运行两个脚本。Ctrl + T选项非常完美,但我找不到等效命令。
有人有解决办法吗? 谢谢!

你需要在ISE中运行这两个脚本吗?如果是的话:为什么? - Rob
是的,我确实这样做,因为它们都加载本地模块... - M.T.
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Rob
3个回答

7
我认为你想要的是类似于以下内容:
Start-Process Powershell.exe -Argumentlist "-file C:\myscript.ps1"
Start-Process Powershell.exe -Argumentlist "-file C:\myscript2.ps1"

此外:在脚本中使用Import-Module $Modulepath确保模块可用。


5
如果您有 Powershell 3.0+,您可以使用“工作流”。它们类似于函数,但具有并行运行命令的优点。
因此,您的工作流将如下所示:
workflow RunScripts {
    parallel {
        InlineScript { C:\myscript.ps1 }   
        InlineScript { C:\myotherscript.ps1 }
    }
}

请记住,工作流程的行为类似于函数。因此,它需要首先加载到缓存中,然后通过运行RunScripts命令来调用。
更多信息请参见:https://blogs.technet.microsoft.com/heyscriptingguy/2013/01/09/powershell-workflows-nesting/

然而,应该提到的是,并非所有的 cmdlet 都支持工作流,而且弄清楚为什么脚本在工作流中不能按预期工作可能会很痛苦。尽管如此,工作流仍然很棒,但如果内部代码是以“应该在工作流中运行”的想法开发的,那就更有趣了。 - Rob

2
使用CTRL+T创建一个新的powershell实例(将创建一个名为powershell 2的选项卡)在Powershell ISE中。
现在,您可以从新的Powershell选项卡打开第二个powershell脚本,并在其他powershell选项卡中运行它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接