如何用for循环复制带目录结构的指定03.json文件到新目录?
解决方法
方法1:使用 for /r 结合目录创建与复制
直接遍历目标文件,提取相对路径并在目标目录中创建对应结构后复制文件,命令如下(直接在CMD窗口执行):
for /r "C:\Users\bui\Desktop\Annotation Traing Package\test1" %i in (*03.json) do ( set "relative_path=%~pi" mkdir "C:\Users\bui\Desktop\Annotation Traing Package\test2%relative_path%" 2>nul copy "%i" "C:\Users\bui\Desktop\Annotation Traing Package\test2%relative_path%" )
%~pi:提取当前文件相对于遍历根目录(test1)的路径部分2>nul:忽略目录已存在时的错误提示- 若在批处理脚本中执行,需将变量
%i改为%%i,%~pi改为%%~pi
方法2:使用 robocopy(更简洁高效)
Robocopy是Windows自带的高级复制工具,原生支持按文件过滤并保留目录结构,命令如下:
robocopy "C:\Users\bui\Desktop\Annotation Traing Package\test1" "C:\Users\bui\Desktop\Annotation Traing Package\test2" *03.json /s
/s:复制所有非空的子目录(若需要包含空目录,替换为/e)- 该命令会自动在test2下创建与test1对应的子目录结构,仅复制匹配
*03.json的文件
内容的提问来源于stack exchange,提问作者toan bui
相关产品推荐
相关产品推荐

