如何在powershell中等待作业
大家好,我有下面的脚本,我正在编写,但不知道如何等待zip完成,然后继续下一个代码块。下面是我正在使用的两个脚本。第一个脚本是一个备份脚本,它调用另一个脚本进行压缩如何在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' $
$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