情况:
在 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 += $_
}
}
}