所以我有两个.ps1脚本,每隔60秒检查一次新任务,我想同时运行它们。我每天都使用它们并开始它们有点烦人。 理想情况下,我想编写一个我可以运行的脚本,为我运行这两个脚本。
问题在于,由于它们不会在某个时刻停止,我无法一个接一个地启动它们,我无法找到打开新PS ISE实例的命令。但是,一个实例不能同时运行这两个脚本。 Ctrl + T选项是完美的,但我无法找到等效的命令。
有没有人知道如何解决这个问题? 谢谢!
答案 0 :(得分:3)
如果你有Powershell 3.0+,你可以使用workflows
。它们与函数类似,但具有可以并行运行命令的优点。
所以你的工作流程是这样的:
workflow RunScripts {
parallel {
InlineScript { C:\myscript.ps1 }
InlineScript { C:\myotherscript.ps1 }
}
}
请记住,工作流的行为类似于函数。所以需要先将其加载到缓存中,然后运行RunScripts
命令调用。
更多信息: https://blogs.technet.microsoft.com/heyscriptingguy/2013/01/09/powershell-workflows-nesting/
答案 1 :(得分:2)
我认为你想要的是
Start-Process Powershell.exe -Argumentlist "-file C:\myscript.ps1"
Start-Process Powershell.exe -Argumentlist "-file C:\myscript2.ps1"
除此之外:在脚本中使用Import-Module $Modulepath
以确保模块的可用性。
答案 2 :(得分:1)
使用CTRL + T在Powershell ISE中创建一个新的powershell实例(创建一个选项卡,我相信它名为powershell 2)。
在新的Powershell选项卡中,您现在可以打开第二个PowerShell脚本,并将其运行在其他PowerShell选项卡中运行的脚本旁边。