如何用批处理脚本按原目录结构移动指定类型文件
保留目录结构移动指定类型文件的批处理脚本
直接用下面的批处理脚本就能实现需求,把它放在folder0目录下运行即可:
@echo off setlocal enabledelayedexpansion :: 定义目标文件夹名称和要移动的文件类型 set "targetDir=folderNew" set "fileType=*.txt" :: 遍历当前目录下所有子文件夹中的指定类型文件 for /r %%f in (%fileType%) do ( :: 提取文件的相对路径(去掉当前目录前缀) set "relPath=%%~pf" :: 构建目标目录路径 set "destPath=!targetDir!!relPath!" :: 创建目标目录(如果不存在) if not exist "!destPath!" mkdir "!destPath!" :: 移动文件到目标目录 move "%%f" "!destPath!" ) echo 所有%fileType%文件已完成移动,保留原目录结构至%targetDir% endlocal
脚本说明:
@echo off:关闭命令行默认输出,让运行过程更简洁setlocal enabledelayedexpansion:启用延迟环境变量扩展,确保循环内变量能正确更新for /r %%f in (%fileType%):递归遍历当前目录(即folder0)下所有符合*.txt的文件%%~pf:提取文件的相对路径(比如folder1\、folder2\folder3\)mkdir "!destPath!":自动创建folderNew下对应的子目录,确保目录结构和原路径一致move "%%f" "!destPath!":将文件移动到对应的目标目录
运行后,所有folder0子文件夹里的.txt文件都会被移动到folderNew下相同结构的文件夹中,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者E. Reed
相关产品推荐
相关产品推荐

