将特定文件从多个文件夹复制到另一个目标

将特定文件从多个文件夹复制到另一个目标

我正在尝试将音乐库中多个文件夹中的大约 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

显然,替换占位符。

相关内容