我有一个文件夹,里面全是 .wav 文件,我想将它们复制到名为“唯一大小”和“非唯一大小”的子文件夹中。大约一半的文件大小相同,精确到字节:
Get-ChildItem "*.wav" | Group-Object -Property Length -NoElement | Sort-Object Count -Descending
Count Name Group (Example)
----- ---- ----
6 26244078 {file206.wav, file137.wav, file 101.wav, etc.}
5 28716602
5 28807758
5 30750266
...
1 17773794 {file31.wav}
1 18144078
1 18432082
1 70589446
如果组数 = 1,我希望将它们复制到“唯一大小”,否则复制到“非唯一大小”,但我对 powershell 和 CLI 总体上不太熟悉,目前我还不太确定如何处理命令的输出。我在网上搜索过几次,但我的关键字似乎对这个相当独特的问题没有任何帮助。任何帮助我都会感激不尽,谢谢!
您需要循环遍历各组,并根据它们的
.Count
属性将文件复制到Unique Size
或Non-Unique Size
文件夹中。这是一个简单的解决方案:
也可以将其作为一行代码来完成,使移动目的地取决于
Count -eq 0
,但需要嵌套ForEach-Object
才能引用它。确保目标文件夹已经存在,否则文件
example.wav
将被复制为Unique
而不是Unique/example.wav
。