批量将编号对应命名的图片文件复制到对应文件夹的批处理脚本实现咨询
批量将编号对应命名的图片文件复制到对应文件夹的批处理脚本实现咨询
嗨,这个需求完全可以用Windows批处理脚本高效搞定,针对你几百个文件的场景也能轻松处理,我给你分步骤讲清楚怎么做:
第一步:准备编号-文件夹映射表
先创建一个纯文本文件,命名为map.txt,把你的编号和对应的文件夹名一一对应写进去,每行格式是「编号 文件夹名」(中间用空格分隔),比如你给出的例子就写成:
98745 anna 98746 nuuk 98747 nissum
注意哦,这个文件要和你的批处理脚本、所有图片文件放在同一个文件夹里,方便脚本读取。
第二步:编写批处理脚本
新建一个文本文件,把后缀改成.bat(比如叫copy_images.bat),然后把下面的代码复制进去:
@echo off setlocal enabledelayedexpansion :: 遍历映射表中的每一行记录 for /f "tokens=1,2" %%a in (map.txt) do ( :: 先检查当前编号的图片文件是否存在 if exist "%%a.jpg" ( :: 如果目标文件夹不存在,自动创建它 if not exist "%%b" mkdir "%%b" :: 执行复制操作 copy "%%a.jpg" "%%b\" echo 已完成:将 %%a.jpg 复制到 %%b 文件夹 ) else ( echo 警告:未找到文件 %%a.jpg,请检查文件是否存在 ) ) echo 所有复制操作已执行完毕! pause
脚本关键部分说明
@echo off:关闭命令行的默认命令输出,让运行过程更清爽setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环里的变量能正确读取for /f "tokens=1,2" %%a in (map.txt):逐行读取map.txt,把每行的第一个内容(编号)存到%%a,第二个内容(文件夹名)存到%%bif exist "%%a.jpg":先检查图片文件是否存在,避免复制不存在的文件导致报错mkdir "%%b":自动创建目标文件夹,不用你手动一个个建copy "%%a.jpg" "%%b\":把对应编号的图片复制到目标文件夹,末尾的\确保是复制到文件夹内
额外注意事项
- 如果你的图片扩展名不是
.jpg,记得把脚本里的.jpg改成你实际的格式(比如.png) - 如果遇到重名文件,批处理会弹窗询问是否覆盖;要是想自动确认覆盖,把
copy命令改成copy /y "%%a.jpg" "%%b\"(/y参数就是自动覆盖) - 运行脚本时,直接双击
copy_images.bat就行,运行过程会显示每一步的操作结果,完成后按任意键关闭窗口
备注:内容来源于stack exchange,提问作者KISHORI CHANDAR K R
相关产品推荐
相关产品推荐

