简短的说法是我有两个外置硬盘(标有T:和V :)以及我的主SSD;我使用T:严格用于媒体存储,而V:应该只是它的镜像备份。一个转折点是我稍微修改T上的某些文件名:在观看视频之后通过在其前面放置一个哈希(以表示列表中的哪个视频我最多)。示例:1。飞行员,#2。显示,3。游戏......观看ep 2,它变为:1。Pilot,2。Show,#3。游戏。
我现在有非常弱的无用代码,对不起。我是Powershell的新手,我不希望任何人浪费他们的夏日做这一切,但有什么建议让我去?真的,我专注于任何类型的排除/忽略提供99%可比的文件;即#2。显示vs 2.显示(我知道左/右功能的计数,但似乎无法让它按我想要的方式工作)。
感谢和抱歉这个混乱的问题。
代码atm:gci -recurse -path C:\V\TV, C:\T | Where-Object {$_.name -like "*.txt*"} | Group -noelement | where {$_.count -eq 1} | Sort-Object -Property Name
`计数名称
1 #Goodbye - Copy (20).txt
1 #Goodbye - Copy (6).txt
1 #Hello - Copy (21).txt
1 #Hello - Copy (7).txt
1 Goodbye - Copy (20).txt
1 Goodbye - Copy (6).txt
1 Hello - Copy (21).txt
1 Hello - Copy (7).txt`
答案 0 :(得分:1)
如果您只想知道两者之间的区别,可以使用以下脚本:
$T = Get-ChildItem T: -Recurse
$V = Get-ChildItem V: -Recurse
Compare-Object $T $V
或其紧凑形式:
compare (ls T: -Recurse) (ls V: -Recurse)
请注意,它只会比较在T:和V下找到的每个文件: 您可以通过Get-ChildItem cmdlet中的某些过滤来缩小比较范围。
修改强>
从评论更新,以下是仅列出唯一值的脚本,使用#
[String]
中删除文件名
Get-ChildItem -Recurse -Path T:,V: | %{ $_.Name.TrimStart('#') } | Sort-Object -Unique