【问题标题】:Which tool will allow me to merge multiple folders in a single folder based on modification date哪个工具允许我根据修改日期将多个文件夹合并到一个文件夹中
【发布时间】:2014-01-03 19:49:48
【问题描述】:

我需要合并多个(两个以上)具有相似树和文件结构的文件夹

例如,如果我有这些文件夹

FolderA/DB/A.SQL - last modified: yesterday
FolderA/DB/F.SQL
FolderA/WebSite/one.aspx - last modified: today

FolderB/DB/A.SQL - last modified: today
FolderB/DB/C.SQL
FolderB/WebSite/one.aspx - last modified: yesterday
FolderB/WebSite/two.aspx 

FolderC/DB/B.SQL
FolderC/WebSite/three.aspx

合并的单个文件夹应包含

Merged/DB/A.SQL - last modified: today (taken from FolderB)
Merged/DB/B.SQL
Merged/DB/C.SQL
Merged/DB/F.SQL
Merged/WebSite/one.aspx - last modified: today (taken from FolderA)
Merged/WebSite/two.aspx 
Merged/WebSite/three.aspx

哪个工具可以让我这样做? Winmerge 只合并两个文件夹。而且我需要合并任意数量的文件夹(不仅仅是示例中的 3 个),每个文件夹可以包含多个文件

我问这个是因为如果该工具不存在,我会自己编写它,但我宁愿使用轮子而不是重新发明它

【问题讨论】:

  • @MauricioGracia 加入这个area51.stackexchange.com/proposals/60887/… 虽然它不能解决您当前的问题,但如果我们可以安全地提出这些类型的问题,那么有一个 stackoverflow 地方会很好。

标签: windows windows-7


【解决方案1】:

显然,那里的大多数工具都适用于两个文件夹,或者它们合并文件但不保留文件夹结构,并且许多版本需要花钱但不能执行我需要的确切任务。

我已经开发了,如果有人需要这个工具,请告诉我,我会分享它

【讨论】:

    【解决方案2】:

    任何版本控制工具怎么样:SVN、Git 或其他任何东西:

    1. 使用 git,您可以在本地初始化空存储库并将第一个文件夹提交到。
    2. 比复制第二个文件夹替换文件。然后在提交对话框中 - 查看更改,如果先前(已在 repo 中)文件状态更改具有更高的优先级,则恢复。
    3. 提交新状态。
    4. 对任意数量的此类文件夹重复步骤 2-3。

    我在合并复杂的文件夹结构时使用这些技术,这些结构不受版本控制并且由于某种原因同时发生了变化。

    【讨论】:

    • 这听起来像是另一种选择,但其想法是尽可能多地删除“合并”过程中的手动干预。如果我在文件夹 1 上有一个文件“alterTableXX.sql”,然后在文件夹 2 上有一个文件“alterTableXX.sql”,并且有不同的 alter 语句,我需要连接这些更改。如果我使用一个存储库,同时使用另一个存储库,否则我将不得不手动检查每个案例。在我的情况下,每个文件夹就像一个可以单独应用的修复/功能的“发布”
    • @Mauricio Gracia,在同一文件中同时更改的情况是版本控制管理的完美用例。您将能够查看/编辑每个更改。但我同意这似乎需要大量的体力劳动。
    【解决方案3】:

    我在RichCopy(对于两千个文件夹不可行)和 PowerShell(太复杂)上浪费了半个小时,然后又回到xcopy

    1. 在命令提示符下,转到包含 FolderA、FolderB、FolderC 等的文件夹。
    2. 运行md Merged 创建目标文件夹。
    3. 在 for 循环中运行 xcopy:

    for /D %%i in (*) do xcopy "%%i" Merged\ /e /h /d /y

    故障:

    • for /D %%i in (*) do - 对每个目录重复。
    • xcopy "%%i" Merged\ - 将目录内容复制到“合并”文件夹。
    • /e - 递归复制,包括空目录。
    • /h - 不要跳过隐藏文件和系统文件。
    • /d - 仅在更新时才覆盖。
    • /y - 不问,直接覆盖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2020-07-01
      • 2020-09-05
      • 1970-01-01
      • 2023-02-06
      • 2019-11-07
      • 1970-01-01
      相关资源
      最近更新 更多