首页 > 解决方案 > 等待每个 Powershell

问题描述

我正在通过powershell中的for each命令安装一堆文件,但是脚本不会等到执行完成才移动到下一个文件,我如何确保它在移动到下一个文件之前等待每个文件的完成一?到目前为止,这是我的代码。

$files = Get-ChildTtem $PSScriptroot

foreach ($file in $files)
{
if($file.extension.ToUpper() -eq ".appxbundle")
{
Add-AppxPackage $file.fullname -InstallAllResources
}
}

标签: powershell

解决方案


您应该能够使用Start-Joband Wait-Jobcmdlet 来完成此操作:

$files = Get-ChildTtem $PSScriptroot

foreach ($file in $files)
{
if($file.extension.ToUpper() -eq ".appxbundle")
{
    Start-Job -Name Job1 -ScriptBlock { Add-AppxPackage $file.fullname -InstallAllResources }
    Wait-Job -Name Job1
}
}

推荐阅读