在PowerShell中,我试图在同一时间同步不同的任务,因为每个任务都需要2-4小时。我现在的脚本只是一个接一个地处理每个任务。我知道在PowerShell中有一个名为后台作业的选项。是否有一种方法可以转换以下代码,以便同时处理多个.cmd文件?
$handler_button1_Click=
{
$answer= $finalcheck.popup("text",0,"text",4)
If($answer-eq 6) {
[Windows.Forms.MessageBox]::Show("text", "Information", [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)
$listBox1.Items.Clear();
if ($checkBox1.Checked) {
Try{
& K:\sample.cmd
}catch [System.Exception]{
$listBox1.Items.Add("Error")}
}
if ($checkBox2.Checked) {
Try{
& K:\sample2.cmd
}catch [System.Exception]{
$listBox1.Items.Add("Error")}
}发布于 2016-08-11 10:49:36
您可以使用Start-Job:
$job = Start-Job { & K:\sample.cmd }此时,您可能需要添加一些代码来观察已启动的作业的状态。可能您可以定期检查$job.State。
在此基础上,如果一个作业已经在运行,您可能拒绝启动相同类型的作业。
除了“开始工作”之外,您还应该查看以下内容:
https://stackoverflow.com/questions/38894155
复制相似问题