如何在命令提示符中从一个驱动器复制指定的部分文件夹及其内容到另一个驱动器并保留原文件夹结构?
如何在命令提示符中从一个驱动器复制指定的部分文件夹及其内容到另一个驱动器并保留原文件夹结构?
嘿,我完全懂你的需求——你想把电脑C盘里指定的几个专辑文件夹完整迁移到MP3的E盘里,连文件夹本身带里面的内容一起过去,而不是把所有文件都乱糟糟丢进同一个目录里对吧?之前你试的命令之所以只复制了文件,是因为目标路径的写法没处理对,我来给你修正下:
首先,确认你已经在C盘的音乐根目录下(也就是那些Folder4、Folder17所在的目录),然后用这条命令就可以实现你的需求:
for %I in ("Folder4" "Folder17" "Folder23") do xcopy /s /i "%I" "E:\music\%~nI"
给你拆解下这条命令的关键点:
/s:会复制目标文件夹里的所有文件和非空子文件夹,保证内容完整迁移/i:如果目标路径不存在(比如E盘里还没建music文件夹,或者某个专辑文件夹还没生成),会自动帮你创建对应的文件夹,不用手动提前建%~nI:这个是CMD里的变量语法,专门提取%I里的文件夹名称(比如从"Folder4"里提取出Folder4),这样每个源文件夹都会在E:\music下面生成一个同名的子文件夹,完美保留原结构
举个实际效果的例子:执行后,C盘里的Folder4会被完整复制到E:\music\Folder4,里面的所有MP3文件和子文件夹都会跟着过去,完全和你C盘里的结构一致。
如果你觉得for循环有点复杂,文件夹数量又不多的话,也可以逐个执行xcopy命令,更直观:
xcopy /s /i "Folder4" "E:\music\Folder4" xcopy /s /i "Folder17" "E:\music\Folder17" xcopy /s /i "Folder23" "E:\music\Folder23"
最后给你几个小提醒:
- 如果文件夹名称里有空格(比如"Dark Side of the Moon"),一定要用双引号把整个文件夹名括起来,不然CMD会把空格当成命令分隔符,报错找不到路径
- 如果需要连空的子文件夹也一起复制,可以把
/s换成/e - 要是你把这条命令写到批处理(.bat)文件里,记得把
%I改成%%I,批处理里的变量需要双百分号
备注:内容来源于stack exchange,提问作者Xplodotron
相关产品推荐
相关产品推荐

