替换为多个目录中的文件

replace with files from multiple directories

我有大量的 JPEG 文件,它们已分类并放置在几个不同的目录中。不幸的是,这些目录丢失了——尽管我能够从旧版本中恢复它们。但是所有文件都已损坏。

幸运的是,我还有未排序的 JPEG 文件,我想用这些文件名正常的文件替换损坏的文件。所以基本上遍历未排序的文件并将它们与排序的文件匹配。 我发现通过使用命令 replace 我能够做到这一点并且它完美地工作,但有一个例外:我一次只能通过 1 个源目录。这是一个问题,因为未排序的 JPEG 文件位于约 2000 个不同的目录中。

我目前正在做的是:

replace "folder1\folder2\folder3\folder4\*.jpg" "sorted_images_dir" /s

我想做的是:

replace "folder1\*EVERY SUBDIRECTORY OF folder1*\*.jpg" "sorted_images_dir" /s

这可以在命令行上实现还是我必须创建一个批处理文件?如果是这样,对此有何建议?看起来这将是一个相当简单的任务。

阅读 HELP FOR 并尝试 FOR /D %a in (*) do @echo %a 这样您可能会遍历当前目录中的所有文件夹。

然后您可以尝试 FOR /D /R %a in (*) do @echo %a 对所有文件夹和子文件夹进行递归迭代。

所以,终于可以试试了

FOR /D /R %a in (*) do @replace "%a\*.jpg" "sorted_images_dir" /s