如何将所有的mp3文件移动到一个单独的目录中?

3
我有一堆分散在艺术家\专辑文件夹中的MP3文件,我想用Windows批处理文件将它们全部移动到一个单独的目录中,并且删除文件夹本身(因此使用了这些标签)。

1
嗯...写个脚本来完成它。没有平台/语言的偏好,对我们来说很难给出任何有用的示例代码... - timdev
1
我喜欢美味的鳕鱼,尤其是来自湖泊的例子。 - Anthony
我原以为批处理文件标签足够了,但如果不行的话,我想要Windows批处理文件。希望这样更清楚了。 - esac
Brian - 你能否澄清一下为什么你认为这个问题应该属于 SU(Super User)?我认为批处理文件是属于 SO(Stack Overflow)的范畴。实际上,尽管我不喜欢批处理,但我很想看到一个真正的批处理文件解决他的问题。 - DVK
7个回答

7

您可以从以下开始:

for /R %%x in (*.mp3) do move "%%x" "c:\dir"

4
使用Windows搜索功能搜索*.MP3,等待搜索完成。选择所有结果并使用剪切粘贴到目标目录中。
然后子目录应该是空的。您可以一次性选择它们并将其删除。

1
戈尔底结,迎接利剑 :)/ +1 - DVK
我希望能够在批处理文件中完成这个步骤,作为多步重命名和使用命令行标记程序的一部分,但是目前我缺少这个步骤。 - esac

2

为了完成一个过度的努力,安装任何Unix工具(例如CYGWIN,许多其他工具)并执行“mv //* final_dir”即可 :)

当然,这将使您拥有一个在Windows上非常有用和超级酷的Unix工具集。

另一种过度杀伐的方法是安装ActivePerl并在Perl中执行它:

map { move($_, $final_dir) || die "Can not move $_: $!" } glob("basedir/*/*/*");

是的,我知道你说了批处理文件。但是,早在冰河时代之前,我曾经编写过批处理程序,我的最佳建议是:不要使用批处理!在Windows上使用PowerShell或Perl会让你的生活变得轻松得多。 - DVK

0

fs-dependent,文件数量限制的实验结果是你可以在同一级别下拥有数千个文件,但没有尝试超过10000个,超过1000个是可以的。


0

编辑 我看到你想用“win batch”来做这件事(在你后来添加的评论中)...我将我的答案保留作为另一种选择...

我使用了JP soft's 4NT(一个command.com替代品)来完成这个任务。

cd <root of mp3 tree>
global /i move *.mpr \newdir

请注意,newdir 绝对不能是 mp3 树根目录的子目录。

global 在起始目录的每个子目录中执行一个命令(移动命令)。/i 告诉它忽略返回代码(一个目录可能不包含任何 mp3 文件)。

4NT 不再销售,但 "Take Command" 也应该可以使用。


1
WinBatch是完全不同于Windows批处理文件的东西。小心。 - Joey

0

artist>move *.mp3 destinationDirectory 我相信会起作用。


-1

首先,这应该移动到superuser。其次,我使用MusicBrainz来管理我的mp3库。

由于问题变得更加复杂,让我详细介绍一下MusicBrainz。

你可以将它指向一个音乐文件夹,深入到任何你想要的层级,并获取该目录中找到的所有歌曲。然后,它会基于用户生成的数据库提供重新标记的选项。它使用一种疯狂的音频指纹识别方法来猜测任何缺少元数据或需要正确元数据的歌曲(比如Aretha Franklin演唱的“Son of Preacher Man”和著名的滚石乐队翻唱的“Brown Eyed Girl”)。

在完成任何元数据校正后,你点击保存,它将:

a)替换/添加元数据标签

b)根据你指定的任何模式将你的mp3文件移动到目录中

c)如果你设置了这个选项,它将删除任何在文件重定位后留下空的文件夹

因此,你可以简单地告诉它不要重新标记,也不要使用任何元数据作为文件夹目标,它就会按照你想要的方式执行(如果你想要更多,它也可以提供)。

我已经设置好了从我的“巨型音乐混乱”文件夹中获取内容,然后根据艺术家、专辑、碟片将它们放入文件夹,并最终给mp3文件重命名为“曲目# - 标题”。类似于Music Library/%Artist%/%Album%/%Vol%/%#% - %title


他确实要求批处理解决方案,那就是编程(有点)。 - lexu
同意,但我怀疑他的意图只是为了自己(意思是不分发或作为更大项目的一部分),可能只做一两次。Thorain的完美答案反映了这一点,我想。 - Anthony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接