我有对此代码感到非常满意的代码:
$jpgExtensionFiles = New-Object System.Collections.ArrayList
$AllDrives = Get-PSDrive
foreach ($Drive in $AllDrives) {
$Dirs = Get-ChildItem $Drive.Root -Recurse -ErrorAction SilentlyContinue
$jpgExtensionFiles.Add(($Dirs | where {$_.extension -eq ".jpg"}))
}
但是现在,我想对名为
$bmpExtensionFiles
的数组执行相同的操作。我不知道如何执行以下操作:...为了效率着想,所有这些都在一个循环中。我知道我可以只添加
$bmpExtensionFiles.Add(($Dirs | where {$_.extension -eq ".bmp"}))
,但是有没有更有效的方法?我需要与PowerShell v2兼容。 最佳答案
您可以使用switch语句,然后,如果以后要添加其他类型,很容易扩展:
ForEach ($Dir in $Dirs)
{
Switch ($Dir.Extension)
{
".jpg" {$jpgExtensionFiles.Add($Dir)}
".bmp" {$bmpExtensionFiles.Add($Dir)}
}
}