首页 > 解决方案 > if 语句上的多个 foreach

问题描述

我正在尝试从包含任务序列名称的下拉列表中在多台计算机上重新运行任务序列,并通过文本文件加载计算机列表。

我尝试了 2 个不同的功能,但没有触发操作,没有错误或来自 ISE 的输出。

我怎样才能做到这一点?

#Removed #foreach ($Computer in $Computers)

#TaskSequences
$W10_PRELOAD_1809 = "W10_PRELOAD_1809"
$W10_UPG_1809 = "W10_UPG_1809"
$W10_UPG_1809_FORCE = "W10_UPG_1809_FORCE"

$Browse_OnClick = {
    $FileName = Select-FileDialog
    $Computers = Get-Content $FileName
    $Install.enabled = $true
}

$TaskSequence = "$W10_PRELOAD_1809", "$W10_UPG_1809", "$W10_UPG_1809_FORCE", "$W7_CHECK_PRELOAD", "$W7_1809_PRELOAD", "$W7_UPG_1809", "$W7_UPG_1809_FORCE"
$TaskSequence | % { $ListApps.Items.Add($_) }

$Install_OnClick= {

    if (!$ListApps.SelectedItem) {[System.Windows.Forms.MessageBox]::Show("Please select a Task-Sequence from the drop down menu")

       }
    else {

        $TaskSequenceItem = $ListApps.SelectedItem.ToString()

      if ($TaskSequenceItem -eq "W10_PRELOAD_1809")
        {
           New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_PRELOAD_$Computer.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809")
        {
             New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_UPG_$Computer.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809_FORCE")
        {
          New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_Force_$Computer.txt -Force
        }

    }
}

标签: powershellif-statementforeach

解决方案


$Servers = Get-Content $FileName

ForEach ($Server in $Servers){

    if (!$ListApps.SelectedItem) {[System.Windows.Forms.MessageBox]::Show("Please select a Task-Sequence from the drop down menu")

       }
    else {

        $TaskSequenceItem = $ListApps.SelectedItem.ToString()

      if ($TaskSequenceItem -eq "W10_PRELOAD_1809")
        {
            New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_PRELOAD_$Server.txt -Force

        }

        if ($TaskSequenceItem -eq "W10_UPG_1809")
        {
             New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_UPG_$Server.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809_FORCE")
        {
          New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_Force_$Computer.txt -Force
        }

    }
}
}


推荐阅读