这是我到目前为止所做的尝试:
$fse = Get-ChildItem -Recurse -Path C:\new1 -Filter *.txt
$fso = Get-ChildItem -Path C:\new2 -Filter *.txt | where {$fse.name -eq $_.name}
echo "output : $fso"
new1目录有文件: - hi.txt,hiCopy.txt,hiCopy2.txt
new2目录有文件: - hi.txt,hiCopy.txt
这就是我得到的:
PS C:\Users\prshrivastava> $fse = Get-ChildItem -Recurse -Path C:\new1 -Filter *.txt
PS C:\Users\prshrivastava> $fso = Get-ChildItem -Path C:\new2 -Filter *.txt | where {$fse.name -eq $_.name}
PS C:\Users\prshrivastava> echo "output : $fso"
output :
我正在尝试列出不同目录中的相同文件,然后删除比较目录,如果找到相同的匹配目录
答案 0 :(得分:0)
您的问题是您尝试将某个集合与单个项目进行比较(-eq
)。
PS C:\> $Fse = Get-ChildItem -Path 'C:\new1' -Filter '*.txt' -Recurse
PS C:\> $Fse.Name
hi.txt
hiCopy.txt
hiCopy2.txt
PS C:\> $Fso = Get-ChildItem -Path 'C:\new2' -Filter '*.txt' -Recurse |
>> Where-Object { $Fse.Name -contains $_.Name }
PS C:\> $Fso
hi.txt
hiCopy.txt