Powershell 断续循环

Powershell 断续循环,powershell,Powershell,如何首先遍历所有驱动器并从找到的第一个驱动器复制文件,然后再次遍历所有驱动器并注册任务。 当前仅复制我的文件。可能是由于错误的中断命令。解析路径可在以下方面提供帮助: 前两个检查找到正确的路径,然后如果找到多个路径,则使用第一个路径,然后针对该路径执行任务 Foreach ($dir in @("C:","D:","E:","H:","I:")) { IF (Test-Path $dir\folder\Office_task.bat) { Copy-Item $di

如何首先遍历所有驱动器并从找到的第一个驱动器复制文件,然后再次遍历所有驱动器并注册任务。
当前仅复制我的文件。可能是由于错误的
中断
命令。

解析路径
可在以下方面提供帮助:

前两个检查找到正确的路径,然后如果找到多个路径,则使用第一个路径,然后针对该路径执行任务

Foreach ($dir in @("C:","D:","E:","H:","I:"))
{
    IF (Test-Path $dir\folder\Office_task.bat)
    {
       Copy-Item $dir\folder\Office_task.bat C:\Users -Force
       break
    }
    IF (Test-Path $dir\folder\xml\Office.xml)
    {
        Register-ScheduledTask -Xml (Get-Content "$dir\folder\xml\Office.xml" | Out-String) -TaskName "Office" -Force
        break
    }
}

如果
\folder\Office\u task.bat
位于多个驱动器上,并且他只想从第一个驱动器复制它,这可能会导致问题。如果我不使用break命令Register ScheduledTask,请尝试逐个注册两个相同的任务,因为.xml文件位于两个不同的文件夹中。我的目标是在所有驱动器中循环,复制循环中找到的第一个文件,然后用找到的第一个xml文件注册任务。是的,我使用了该变量,但如何仅使用一次Foreach(…),您的变量对我的任务来说不是太复杂了吗?
$Drives = @("C:","D:","E:","H:","I:")

$OfficePath = ($Drives | % {Resolve-Path $_\folder\Office_task.bat -EA SilentlyContinue}).Path
$XmlPath = ($Drives | % {Resolve-Path $_\folder\xml\Office.xml -EA SilentlyContinue}).Path

$OfficePath = $OfficePath | select -First 1
$XmlPath = $XmlPath | select -First 1

if ($OfficePath) {Copy-Item $OfficePath C:\Users -Force}
if ($XmlPath) {Register-ScheduledTask -Xml (Get-Content $XmlPath | Out-String) -TaskName "Office" -Force}