我正在尝试将音乐库中多个文件夹中的大约 1,500 个 MP3 文件重新复制到按艺术家命名的文件夹中的跳转驱动器中。以下是来自跳转驱动器的一个示例:
I:\Coldplay\A Message.mp3
I:\Coldplay\Low.mp3
I:\Coldplay\Speed of Sound.mp3
I:\Coldplay\Square One.mp3
I:\Coldplay\The Hardest Part.mp3
I:\Coldplay\White Shadows.mp3
I:\Coldplay\A Sky Full of Stars.mp3
I:\Coldplay\Always in My Head.mp3
I:\Coldplay\Ink.mp3
I:\Collective Soul\All That I Know.mp3
I:\Collective Soul\Bearing Witness.mp3
I:\Collective Soul\Good Morning After All.mp3
I:\Collective Soul\Hollywood.mp3
I:\Collective Soul\I Don't Need Anymore Friends.mp3
I:\Collective Soul\Never Here Alone.mp3
I:\Collective Soul\New Vibration.mp3
I:\Collective Soul\Persuasion of You.mp3
I:\Collective Soul\What I Can Give You.mp3
I:\Collective Soul\Dig.mp3
I:\Collective Soul\Fuzzy.mp3
I:\Collective Soul\Hymn For My Father.mp3
I:\Collective Soul\Lighten Up.mp3
I:\Collective Soul\Love.mp3
I:\Collective Soul\She Does.mp3
源文件按艺术家姓名/专辑名称组织,因此 Coldplay 和 Collective Soul 的歌曲有多个不同的源文件夹,这些源文件夹从 Coldplay 和 Collective Soul 文件夹分支出来。并且并非每个源文件夹中的所有歌曲都复制到跳转驱动器上,只有选定的歌曲被复制到跳转驱动器上。因此,除了手动逐个复制(乏味!)之外,我无法找到任何方法来告诉操作系统在哪里找到要复制的源文件。我还有一个通过执行“DIR /B /S > USB_List.txt”创建的文本文件。有人能想到使用批处理或 For 命令复制这些文件的方法吗?或者这甚至可能吗?谢谢。
答案1
您不需要像当前一样以 artist\album\title 格式进行存储,而是需要以 artist\title 格式进行存储。
在您想要的目录中的命令提示符中尝试此操作:
1) 移动当前文件夹下子文件夹中的所有文件 2) 删除所有子文件夹名称
for /f "tokens=*" %f in ('dir /a:-D /s /b') do move "%f" .
for /f "tokens=*" %f in ('dir /a:D /s /b') do rd "%f"
例如,假设您这里有一个 MP3:c:\Cold Play\Ghost Stories\True Love.mp3
- 进入命令提示符
- 导航至 c:\Cold Play (cd "\Cold Play"
- 运行以下命令:
for /f "tokens=*" %f in ('dir /a:-D /s /b') do move "%f" .
for /f "tokens=*" %f in ('dir /a:D /s /b') do rd "%f"
这会将 True Love.mp3 移动到 c:\Cold Play 并删除名为 Ghost Stories 的目录。
希望这可以帮助。
答案2
批处理或命令行可能会查看 I: 上的文件并将它们从“D:\Users\username\music\music...”复制到 G:
列出要复制的文件DIR /B /S
,在好的文本编辑器中打开它,将所有“I:...”替换为“D:...”,打开列表的另一个副本,将“I:...”替换为“G:...”,将整个内容复制粘贴到第一个文件中作为另一列(使用列编辑模式)并插入到每echo f | xcopy
行的开头(同样在列编辑模式下)。重命名为 .cmd/.bat,运行。
答案3
尝试运行此命令
ROBOCOPY %%source%% %%destination%% /MIR /ZB /R:3 /W:1
显然,替换占位符。