📜  foreach powershell - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:30:50.591000             🧑  作者: Mango

使用 foreach 循环在 PowerShell 中遍历集合

在 PowerShell 中,foreach 循环被广泛用于遍历集合并对元素进行操作。foreach 循环是一种简洁而强大的语法,可以显著简化在集合上执行操作的代码。

遍历数组

以下是一个遍历字符串数组的 foreach 循环的示例:

$colors = "red", "green", "blue"

foreach ($color in $colors) {
    Write-Host "The color is $color"
}

输出结果为:

The color is red
The color is green
The color is blue
遍历哈希表

以下示例展示了一个遍历字符串键-值对哈希表的 foreach 循环:

$employees = @{ "John"="Developer"; "Mary"="Manager"; "Jim"="Tester" }

foreach ($employee in $employees.GetEnumerator()) {
    Write-Host "$($employee.Key) is a $($employee.Value)"
}

输出结果为:

John is a Developer
Mary is a Manager
Jim is a Tester
遍历对象数组

以下示例显示了一个遍历对象数组的 foreach 循环:

$computers = Get-Content -Path "C:\Computers.txt" | Select-Object -Unique

foreach ($computer in $computers) {
    Get-WmiObject -Class Win32_OperatingSystem -ComputerName $computer | Select-Object -Property PSComputerName, Caption, ServicePackMajorVersion,
    Version | Format-Table -AutoSize
}

此命令从 "C:\Computers.txt" 文件中读取计算机名称,然后遍历该列表并检索有关每个计算机的操作系统信息。

遍历文件夹

以下示例显示了一个遍历文件夹的 foreach 循环:

$localFolder = "C:\Documents"

foreach ($file in (Get-ChildItem -Path $localFolder -Recurse)) {
    $fileAttributes = [string]::Join(", ", $file.Attributes)
    Write-Host "$($file.FullName) ($fileAttributes) - $([int]$file.Length / 1KB)KB"
}

此命令列出了指定文件夹下的所有文件和子文件夹,以及它们的大小和文件属性。

总结

foreach 循环是 PowerShell 中遍历集合并对元素进行操作的最常用方法之一。使用它可以大大简化代码,可读性更强,易于理解和调试。

如有疑问,请参考 Microsoft 官方文档