powershell - 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
}
}
}
解决方案
$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
}
}
}
}
推荐阅读
- typescript - 我想在订阅参数之外使用变量
- java - 从 Spring Batch 中的 Service 方法中读取值
- jquery - 在焦点上更改引导工具提示 css
- node.js - 将消息发送到特定的客户端套接字(从 NodeJS 服务器到 Java 客户端)
- sql - 获取用户考勤进入和退出一行SQL Server
- python - 根据关键字比较 2 个或多个字典中的键并在行/列中显示值
- c++ - 将 int 转换为 char 然后推回向量
- python - Youtube 视频下载器
- javascript - Ant Design Vue:当只有一个 div 内容时,轮播箭头消失
- rust - 将基本 rust 程序链接到子文件夹中的 rlib