查找仅包含重复文件的子文件夹

DDriggs00

我正在寻找一种方法(不包括付费软件)来查找仅包含文件的所有文件夹,这些文件也位于父目录的至少另一个子文件夹中。如果在音乐库上使用,它将列出所有合辑专辑。

文件结构:
艺术家文件夹
-专辑文件夹
--以文件名作为标题的歌曲

您可以使用PowerShell!

$dupes = gi $args[0] | gci -File -Recurse | group Name | ? {$_.Count -gt 1}
gi $args[0] | gci -Directory | ? {
    $allDupes = $true
    $hasAny = $false
    $_ | gci -File | % {
        $folder = $_
        $hasAny = $true
        If (!($dupes | ? {$_.Name -eq $folder.Name})) {$allDupes = $false}
    }
    $allDupes -and $hasAny
}

这个脚本有点棘手,所以让我们仔细看一下。首先,它获取指定为参数的文件夹,以递归方式找到其中包含的文件,按文件名对它们进行分组,只接受一项以上的组(即代表重复歌曲的组),并将该组的集合存储在$dupes然后,它再次获得指定的父目录,但仅列出直接子文件夹。它过滤它们(?),只让那些只包含重复条目的条目退出管道并打印到屏幕上。

这个大的过滤器块占用了大部分脚本,因此让我们更详细地看一下它。它以两个变量开头,一个用于跟踪当前专辑文件夹是否到目前为止仅包含重复项,另一个用于注意文件夹中是否确实存在任何歌曲。(我怀疑将空文件夹计为编译相册并没有真正的帮助。)它列出了相册文件夹中的文件,然后针对其中的每个文件(%),确保有一个重复的组,其中包含相同名称的文件,如果没有If,则表示设置$allDupes为false ,以指示失败如果for-for块根本没有运行,则$hasAny仍然是错误的。最后,大过滤器块评估相册中的所有项目是否都是重复项,并且实际上是否存在重复项。表达式的结果确定相册文件夹是否将包含在外部管道的输出中。

请注意,此脚本中使用的某些PowerShell功能是最近才引入的。如果您使用Windows 7,则-File-Directory开关将不起作用。如有必要,可以解决此问题。

要使用脚本,请将其另存为.ps1文件,例如albumdupes.ps1如果尚未安装,请按照PowerShell标签Wiki的“启用脚本”部分中说明进行操作然后,可以在保存它的目录中的PowerShell提示符下运行它,并提供指向artist文件夹的路径:

.\albumdupes.ps1 'C:\Users\Ben\Test\albumtest'

您将获得如下输出:

    Directory: C:\Users\Ben\Test\albumtest


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       11/20/2017   2:00 PM                Album C
d-----       11/20/2017   2:01 PM                Album F

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找和删除仅包含最新子文件夹的子文件夹

来自分类Dev

查找包含图像的子文件夹

来自分类Dev

仅查找包含与该文件夹同名的文件的那些文件夹

来自分类Dev

循环浏览包含子文件夹的文件夹以查找excel文件

来自分类Dev

如何在仅包含文件夹的Linux系统上递归查找文件夹?

来自分类Dev

列出仅包含名为Attic的子文件夹的文件夹

来自分类Dev

共享的Windows文件夹仅包含前15个子文件夹

来自分类Dev

查找包含文件的文件夹 (VBA)

来自分类Dev

尝试查找仅包含一个文件的文件夹

来自分类Dev

Inno Setup查找子文件夹

来自分类Dev

Inno Setup查找子文件夹

来自分类Dev

在子文件夹中包含标题

来自分类Dev

如果path为空文件夹或仅包含子文件夹,则“ Dir(path)<> vbNullString”给出否定的结果

来自分类Dev

显示仅包含某些文件类型的文件的文件夹

来自分类Dev

压缩包含许多重复文件的文件夹

来自分类Dev

包含文件夹的子文件夹但不包含实际子文件夹(Gulp)的Glob

来自分类Dev

仅复制包含文件的文件夹的命令

来自分类Dev

批处理文件以将文件放入文件夹(仅子文件夹)

来自分类Dev

查找包含可执行文件的文件夹

来自分类Dev

查找包含3个文本项的文件/文件夹

来自分类Dev

条件语句:查找不包含特定文件的文件夹

来自分类Dev

在包含文件的文件夹中查找关键字

来自分类Dev

查找包含特定文件的最新文件夹

来自分类Dev

用于查找包含文件的文件夹的脚本

来自分类Dev

查找包含3个文本项的文件/文件夹

来自分类Dev

如何获取所有仅包含大写字母的子文件夹名称?

来自分类Dev

通过Unix命令在父目录下创建一个.zip文件,该文件仅包含父文件夹及其子文件夹

来自分类Dev

Windows CMD或BATCH文件“标记”空文件夹(和仅包含空文件夹的文件夹)

来自分类Dev

仅重写子文件夹而不重写文件

Related 相关文章

  1. 1

    查找和删除仅包含最新子文件夹的子文件夹

  2. 2

    查找包含图像的子文件夹

  3. 3

    仅查找包含与该文件夹同名的文件的那些文件夹

  4. 4

    循环浏览包含子文件夹的文件夹以查找excel文件

  5. 5

    如何在仅包含文件夹的Linux系统上递归查找文件夹?

  6. 6

    列出仅包含名为Attic的子文件夹的文件夹

  7. 7

    共享的Windows文件夹仅包含前15个子文件夹

  8. 8

    查找包含文件的文件夹 (VBA)

  9. 9

    尝试查找仅包含一个文件的文件夹

  10. 10

    Inno Setup查找子文件夹

  11. 11

    Inno Setup查找子文件夹

  12. 12

    在子文件夹中包含标题

  13. 13

    如果path为空文件夹或仅包含子文件夹,则“ Dir(path)<> vbNullString”给出否定的结果

  14. 14

    显示仅包含某些文件类型的文件的文件夹

  15. 15

    压缩包含许多重复文件的文件夹

  16. 16

    包含文件夹的子文件夹但不包含实际子文件夹(Gulp)的Glob

  17. 17

    仅复制包含文件的文件夹的命令

  18. 18

    批处理文件以将文件放入文件夹(仅子文件夹)

  19. 19

    查找包含可执行文件的文件夹

  20. 20

    查找包含3个文本项的文件/文件夹

  21. 21

    条件语句:查找不包含特定文件的文件夹

  22. 22

    在包含文件的文件夹中查找关键字

  23. 23

    查找包含特定文件的最新文件夹

  24. 24

    用于查找包含文件的文件夹的脚本

  25. 25

    查找包含3个文本项的文件/文件夹

  26. 26

    如何获取所有仅包含大写字母的子文件夹名称?

  27. 27

    通过Unix命令在父目录下创建一个.zip文件,该文件仅包含父文件夹及其子文件夹

  28. 28

    Windows CMD或BATCH文件“标记”空文件夹(和仅包含空文件夹的文件夹)

  29. 29

    仅重写子文件夹而不重写文件

热门标签

归档