Powershell:Dir /s - 删除重复文件夹

Powershell:Dir /s - 删除重复文件夹

情况:

在 Powershell 中,我使用:

$folders = dir -s  C:\Users\Name\Downloads\*.ttf | Select Directory
foreach ($folder in $folders)
{
    echo $folder
}

显示内容包含特定文件扩展名(在本例中为 .ttf 文件)的文件夹。

由于文件夹中有多个 .ttf 类型的文件,因此最终列表中会出现重复项。这对我来说没什么用,因为我想将列出的目录移动到其他地方。

我的问题:

我怎样才能从回显列表中删除这些重复项?

答案1

好的,我相信我已经解决了。

我使用-Unique开关Select来过滤掉重复的结果。

给出最终代码:

$folders = dir -s C:\Users\Name\Downloads\*.ttf | Select Directory -Unique
foreach ($folder in $folders)
{
    echo $folder
}

这是一个简单的解决方案,但我之前没有使用过 PowerShell 编写脚本,所以我不知道这个特殊的功能:)

答案2

您可以使用Contains检查将每个项目加载到列表中,或使用“NotContains”

您可以尝试这样做以了解包含的内容:

$room = @("desk","Lamp","chair","pens","Paper")
$room -Contains "Lamp"
$room -notContains "Whale Bladder"

一个简单的(我脑海中想到的,没有经过测试的)近似值看起来像这样:

$FoundFiles = @()
$FolderList | Foreach-Object {
   Get-ChildItems $_ | foreach-Object {if ($FoundFiles -NotContains  $_.Name){
    $FoundFiles += $_
      }
    }
}

相关内容