与 PowerShell 等效的 Linux“uniq -d”命令?

7 windows powershell shell

我尝试在 PowerShell 中编写一个脚本来查找具有相同名称的文件。之后我想知道该文件组的重复名称有多少。我成功找到了这样的文件:

foreach ($i in Get-ChildItem *.)
{
    Write-Host (Get-ChildItem $i).BaseName
}
Run Code Online (Sandbox Code Playgroud)

但在那之后我需要一个像在 Linux 中的命令cat file | sort | uniq -d。这个-d参数是我在PS中的目标。

我尝试了以下命令,但不起作用:

$var = (Write-Host (Get-ChildItem $i).BaseName | Sort-Object -Unique).Count

# Let's say there are files '1.mp4,1.mkv,2.mp4'
# I want variable var's value is 1, because only one group that has same file names

Run Code Online (Sandbox Code Playgroud)

jfr*_*ner 3

这应该可以满足您的需要,

$var = Get-ChildItem | Group-Object -Property BaseName | Where-Object { $_.Count -gt 1} | Select-Object -ExpandProperty Name 
Run Code Online (Sandbox Code Playgroud)