# 求一款目录对比的工具

**URL:** <https://meta.appinn.net/t/topic/51821>\
**Category:** 问题求助\
**Created:** [2024 年1 月 19 日 09:59 UTC](https://meta.appinn.net/t/topic/51821 "2024-01-19T09:59:08Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

作者： ![oper1000](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/oper1000/32/52571_2.png) [@oper1000](https://meta.appinn.net/u/oper1000)\
发布日期： [2024 年1 月 19 日 09:59 UTC](https://meta.appinn.net/t/topic/51821/1 "2024-01-19T09:59:08Z")

</div>

我现在有一个需求，想要对比两个目录的文件名，看看两个文件夹里的文件是不是一样。但是要忽略扩展名。

比如说一个文件夹里面是MP4文件，有几个文件夹，有几十个视频文件。然后统一转换成MP3，文件名一样，扩展名不同。

那转换完成后我想看看哪个文件没有转换完成。所以要忽略扩展名来对比。

所以请问有类似的工具吗？

---

<div class="post-metadata">

作者： ![Chaoses\_Ib](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/chaoses_ib/32/19682_2.png) [@Chaoses\_Ib](https://meta.appinn.net/u/Chaoses_Ib)\
发布日期： [2024 年1 月 19 日 10:05 UTC](https://meta.appinn.net/t/topic/51821/2 "2024-01-19T10:05:06Z")

</div>

换个思路，可以先把文件名列表复制出来，去掉扩展名，再用文本对比工具对比。

---

<div class="post-metadata">

作者： ![yuukoamamiya](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yuukoamamiya/32/51845_2.png) [@yuukoamamiya](https://meta.appinn.net/u/yuukoamamiya)\
发布日期： [2024 年1 月 19 日 11:47 UTC](https://meta.appinn.net/t/topic/51821/3 "2024-01-19T11:47:41Z")

</div>

我感觉是不是可以用命令行输出到excel再对比

---

<div class="post-metadata">

作者： ![xiao-qiang](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/xiao-qiang/32/51046_2.png) [@xiao-qiang](https://meta.appinn.net/u/xiao-qiang)\
发布日期： [2024 年1 月 19 日 12:12 UTC](https://meta.appinn.net/t/topic/51821/4 "2024-01-19T12:12:52Z")

</div>

Beyond Compare

> Compare files and folders using simple, powerful commands that focus on the differences you’re interested in and ignore those you’re not.

---

<div class="post-metadata">

作者： ![CCR](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/ccr/32/68442_2.png) [@CCR](https://meta.appinn.net/u/CCR)\
发布日期： [2024 年1 月 19 日 12:28 UTC](https://meta.appinn.net/t/topic/51821/5 "2024-01-19T12:28:42Z")

</div>

目录结构：  
主目录：before文件夹，after文件夹，下面的py文件  
before子目录：含mp4文件  
after子目录：含mp3文件

运行结果：仅比较名称，输出before目录有而after目录无的东西

```auto
from pathlib2 import Path

def path_to_name(p: list):
    name_set = set()
    for pi in p:
        name_set.add(pi.stem)
    return name_set

p = Path(".")
before_set = path_to_name(list(p.glob("before\\*.mp4")))
after_set = path_to_name(list(p.glob("after\\*.mp3")))

print(before_set-after_set)

```

---

<div class="post-metadata">

作者： ![Pixie](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/pixie/32/2405_2.png) [@Pixie](https://meta.appinn.net/u/Pixie)\
发布日期： [2024 年1 月 19 日 13:44 UTC](https://meta.appinn.net/t/topic/51821/6 "2024-01-19T13:44:11Z")

</div>

你这个要求大概目前就只有 Beyond Compare 能比较直观，快速的满足吧

 ![Snipaste_2024-01-19_21-38-36](https://meta.appinn.net/uploads/default/original/3X/5/9/5960bc3c671262b852eb7735234fe9568e404dd9.png)

点规则，在杂项里设置

 ![Snipaste_2024-01-19_21-39-27](https://meta.appinn.net/uploads/default/original/3X/d/5/d5180d89f326791c1d9df8bda6a66621ea5d51e4.png)

完事

 ![Snipaste_2024-01-19_21-39-49](https://meta.appinn.net/uploads/default/original/3X/9/1/91394ca5b3cffb15d491b0f9da89a809ac8b5a60.png)

---

<div class="post-metadata">

作者： ![cuiliang](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/cuiliang/32/46680_2.png) [@cuiliang](https://meta.appinn.net/u/cuiliang)\
发布日期： [2024 年1 月 19 日 13:55 UTC](https://meta.appinn.net/t/topic/51821/7 "2024-01-19T13:55:25Z")

</div>

如果有使用Quicker，可以试下这个动作，刚随手写了一个。

> **[文件夹比对 - by CL - 动作信息 - Quicker](https://getquicker.net/Sharedaction?code=98e95772-f6a1-4e78-9edc-08dc18bbd5b2)**
>
> Quicker，Windows效率工具。快速触发 + 自动化。

 ![image](https://meta.appinn.net/uploads/default/original/3X/1/6/16fcb2efe1f7f2dd86173acabbf403c296f6c6dd.png)

[https://files.getquicker.net/\_actionDemos/98e95772-f6a1-4e78-9edc-08dc18bbd5b2/20240119095234\_%E5%AF%B9%E6%AF%94%E7%9B%AE%E5%BD%95.mp4](https://files.getquicker.net/_actionDemos/98e95772-f6a1-4e78-9edc-08dc18bbd5b2/20240119095234_%E5%AF%B9%E6%AF%94%E7%9B%AE%E5%BD%95.mp4)

---

<div class="post-metadata">

作者： ![dangerace](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dangerace/32/16676_2.png) [@dangerace](https://meta.appinn.net/u/dangerace)\
发布日期： [2024 年1 月 19 日 14:22 UTC](https://meta.appinn.net/t/topic/51821/8 "2024-01-19T14:22:59Z")

</div>

1、在A文件夹上，使用everything查看其下所有文件，可导出csv文件。  
2、在B文件夹上，使用everything查看其下所有文件，可导出csv文件。  
3、将两个csv文件内容粘贴到excel中对比一下。

---

<div class="post-metadata">

作者： ![Kyun](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/k/e8c25b/32.png) [@Kyun](https://meta.appinn.net/u/Kyun)\
发布日期： [2024 年1 月 19 日 14:46 UTC](https://meta.appinn.net/t/topic/51821/9 "2024-01-19T14:46:11Z")

</div>

免費的[WinMerge](https://winmerge.org/)也可以。

---

<div class="post-metadata">

作者： ![dog](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dog/32/18667_2.png) [@dog](https://meta.appinn.net/u/dog)\
发布日期： [2024 年1 月 19 日 14:52 UTC](https://meta.appinn.net/t/topic/51821/10 "2024-01-19T14:52:08Z")

</div>

用everything，非常简单。  
把两个文件夹的名字输入到搜索栏，中间用符号 | 隔开，表示或者。  
ctrl+1，以名称排序。  
ctrl+shift+3，以中图标显示。

调节窗口大小，显示偶数列。

一目了然了，现在~  
每当有错位发生，说明那里存在未完成的文件。

 ![image](https://meta.appinn.net/uploads/default/original/3X/4/b/4ba05a8af9c50139b9f746d751bac16ae8eb57eb.png)

---

<div class="post-metadata">

作者： ![Mozart2045](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/m/71e660/32.png) [@Mozart2045](https://meta.appinn.net/u/Mozart2045)\
发布日期： [2024 年1 月 19 日 15:00 UTC](https://meta.appinn.net/t/topic/51821/11 "2024-01-19T15:00:46Z")

</div>

> **[GitHub - cxasm/cc-compare: 一款可替换beycond compare, 免费使用的代码同步对比工具，来自中国。](https://github.com/cxasm/cc-compare)**
>
> 一款可替换beycond compare, 免费使用的代码同步对比工具，来自中国。

beyond compare收费,于是我就用这个了.

---

<div class="post-metadata">

作者： ![viazure](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/viazure/32/1621_2.png) [@viazure](https://meta.appinn.net/u/viazure)\
发布日期： [2024 年1 月 19 日 15:00 UTC](https://meta.appinn.net/t/topic/51821/12 "2024-01-19T15:00:48Z")

</div>

试了下 Beyond Compare 可以做到，在「规则」-「比较」中把「按不同的扩展名对齐文件名」勾上就行了。我用的是 4.2.6 版本，不确定最新版本的菜单名称是否有变化了。

---

<div class="post-metadata">

作者： ![Aquamarine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Aquamarine](https://meta.appinn.net/u/Aquamarine)\
发布日期： [2024 年1 月 20 日 07:09 UTC](https://meta.appinn.net/t/topic/51821/13 "2024-01-20T07:09:42Z")

</div>

这个例子是不是只能将123.mp3和123.mp4视为等同？如果是123.aac就不适用了？

---

<div class="post-metadata">

作者： ![LambertCrofts](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/lambertcrofts/32/50237_2.png) [@LambertCrofts](https://meta.appinn.net/u/LambertCrofts)\
发布日期： [2024 年1 月 21 日 12:17 UTC](https://meta.appinn.net/t/topic/51821/15 "2024-01-21T12:17:14Z")

</div>

我猜写成 \*.{mp3, aac} 应该是可以的

---

<div class="post-metadata">

作者： ![hzhbest](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/e9a140/32.png) [@hzhbest](https://meta.appinn.net/u/hzhbest)\
发布日期： [2024 年1 月 22 日 03:34 UTC](https://meta.appinn.net/t/topic/51821/16 "2024-01-22T03:34:10Z")

</div>

用了这么久 BeyondCompare，现在才知道有规则的项……  
一直都只用来对比文件夹结构和同步文件了，浪费了

---

<div class="post-metadata">

作者： ![Pixie](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/pixie/32/2405_2.png) [@Pixie](https://meta.appinn.net/u/Pixie)\
发布日期： [2024 年1 月 23 日 11:57 UTC](https://meta.appinn.net/t/topic/51821/17 "2024-01-23T11:57:07Z")

</div>

可以添加多条规则  
你再添加一条`*.mp3=*.aac`就可以了啊

---

<div class="post-metadata">

作者： ![Aquamarine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Aquamarine](https://meta.appinn.net/u/Aquamarine)\
发布日期： [2024 年1 月 24 日 01:19 UTC](https://meta.appinn.net/t/topic/51821/18 "2024-01-24T01:19:36Z")

</div>

有没有忽略后缀名的选项？

---

<div class="post-metadata">

作者： ![zhongx](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/z/ba9def/32.png) [@zhongx](https://meta.appinn.net/u/zhongx)\
发布日期： [2024 年1 月 24 日 09:17 UTC](https://meta.appinn.net/t/topic/51821/19 "2024-01-24T09:17:25Z")

</div>

> [@viazure](#):
>
> 试了下 Beyond Compare 可以做到，在「规则」-「比较」中把「按不同的扩展名对齐文件名」勾上就行了。我用的是 4.2.6 版本，不确定最新版本的菜单名称是否有变化了。

有。
