如何在powershell中等待作业

如何在powershell中等待作业,powershell,Powershell,大家好,我有下面的脚本,我正在编写,但不知道如何等待zip完成,然后继续下一个代码块。下面是我正在使用的两个脚本。第一个脚本是一个备份脚本,它调用另一个脚本进行压缩 $Date = Get-Date $folder_date = $Date.ToString("yyyy-MM-dd_HHmm") $backup_folder_name = 'c:\Russia\' + $folder_date $V3_folder_name = 'C:\121RussiaScaled\products' $

大家好,我有下面的脚本,我正在编写,但不知道如何等待zip完成,然后继续下一个代码块。下面是我正在使用的两个脚本。第一个脚本是一个备份脚本,它调用另一个脚本进行压缩

$Date = Get-Date

$folder_date = $Date.ToString("yyyy-MM-dd_HHmm")

$backup_folder_name = 'c:\Russia\' + $folder_date
$V3_folder_name = 'C:\121RussiaScaled\products'
$Admin_folder_name = 'C:\inetpub\wwwroot\admin'
$Tablet_folder_name = 'C:\inetpub\wwwroot\tabl'
$Service_folder_name = 'C:\Russia\dll'


if (!(Test-Path -path $backup_folder_name)) {
New-Item $backup_folder_name -type directory
} # if (!(Test-Path -path D:Data))

if ((Test-Path -path $V3_folder_name)) {

Start-job -scriptblock {gi $V3_folder_name | .\Library\out-zip.ps1    
$backup_folder_name\V3.zip $_} 

Wait-job -Id $Job.Id

}

if ((Test-Path -path $Service_folder_name)) {
$Job = Start-job -scriptblock {gi $Service_folder_name | .\Library\out-zip.ps1   
$backup_folder_name\Services.zip $_} 

Wait-job -Id $Job.Id


}

if ((Test-Path -path $Admin_folder_name)) {
$Job = Start-job -scriptblock {gi $Admin_folder_name | .\Library\out-zip.ps1    
$backup_folder_name\admin.zip $_} 


Wait-job -Id $Job.Id


}

if ((Test-Path -path $Tablet_folder_name)) {
$Job = Start-job -scriptblock {gi $Tablet_folder_name | .\Library\out-zip.ps1   
$backup_folder_name\tablet.zip $_} 


Wait-job -Id $Job.Id
}

这是我的out.zip脚本

$path = $args[0]
$files = $input

write-output $path

if (-not $path.EndsWith('.zip')) {$path += '.zip'}   

if (-not (test-path $path)) { 
set-content $path ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18)) 
} 

$ZipFile = (new-object -com shell.application).NameSpace($path) 
$files | foreach {$zipfile.CopyHere($_.fullname)}  
在使用上述脚本时,我得到一个错误“开始作业缺少参数的参数的parameter脚本块。” 或者有没有其他方法可以让我等待这些拉链一个接一个的完成

试试看

$Job = Start-Job -ScriptBlock .....
Wait-Job -Id $Job.Id
对于ScriptBlock错误,请尝试在同一行指定起始大括号,如下所示:

$Job = Start-Job -ScriptBlock {
# Job code here 
}

我应该在哪里指定上述代码。在备份脚本或调用备份脚本的主脚本中]#这是我在主脚本中写的,主脚本调用备份脚本$Job=Start Job-ScriptBlock{./rusia_backup.ps1}Wait Job-Id$Job.Id但它没有创建backupNo错误消息,它说作业已完成,但它没有创建备份文件夹,我将修改我问题中的新脚本,如果您可以阅读,您是否尝试过在没有AsJob的情况下运行备份脚本,并检查它是否能够正常工作。我使用这行代码从主脚本调用上述备份脚本。/rusia_backup.Ps1