2014-11-14 62 views
0

我有File1.ps1需要并行调用File2.ps1和File3.ps1,它们必须在不同的窗口中打开。任何想法我可能会做到这一点?如何通过从另一个PowerShell文件调用它来并行运行PowerShell文件?

启动过程和其他命令行似乎不工作。

+1

尝试使用作业系统。看一个很好的例子[这里](http://powershell.com/cs/blogs/tips/archive/2014/04/11/parallel-processing-in-powershell.aspx)。 – 2014-11-14 21:11:27

+0

启动过程如何不起作用?例如:'Start-Process -FilePath powershell.exe -ArgumentList @(“ - NoExit”,“-Command”,“File2.ps1”)'。 – 2014-11-14 21:17:37

回答

0

尝试设置每个文件以与计划任务一起执行以同时启动。我测试了它,发现两个窗口同时出现并执行。

$filePath = "C:\path\to\files" 
$fileList = ".\File2.ps1", ".\File3.ps1" 
$startTime = (get-date).AddMinutes(1) 

foreach ($file in $fileList) { 
    Register-ScheduledTask ` 
     -Trigger (New-ScheduledTaskTrigger -Once -At $startTime) ` 
     -Action (new-scheduledtaskaction -execute "powershell.exe" -argument "-noexit -file $filePath\$($file.TrimStart('.\'))") ` 
     -TaskName "Execute-$($file.Split(".\")[2])" ` 
     -TaskPath Microsoft\Windows\PowerShell\ScheduledJobs ` 
     -Principal (New-ScheduledTaskPrincipal -LogonType Interactive -UserId $env:USERDOMAIN\$env:USERNAME -RunLevel Highest) 

} 
+0

但不会启动进程按顺序运行而不是并行运行? – user3325210 2014-11-17 20:07:26

+0

@ user3325210我修改了我的答案。你是正确的,我发布的原始答案会按顺序执行每个启动过程。 – 2014-11-18 02:24:08

相关问题