如何将指定序号范围的有序命名图片批量复制到其他目录?
批量复制指定序号范围图片的实现方法
以下是不同系统、不同使用场景下的可落地实现方案:
方法1:Linux/macOS 终端命令实现
如果使用bash 4.0+、zsh等常用shell,直接使用大括号扩展语法即可快速完成:
cp images_{0210..0310}.png /你的目标目录路径/
如果是旧版本bash不支持自动补零的大括号扩展,可以用seq命令实现:
for i in $(seq -f "%04g" 210 310); do cp "images_${i}.png" /你的目标目录路径/; done
其中%04g代表将数字格式化为4位长度,不足的位置前面补零,刚好匹配你的命名规则。
方法2:Windows 命令提示符(CMD)实现
CMD环境下用for循环实现:
setlocal enabledelayedexpansion for /l %i in (210,1,310) do ( set "num=000%i" set "num=!num:~-4!" copy "images_!num!.png" C:\你的目标目录路径\ )
如果是把这段逻辑写在.bat批处理文件里运行,需要把%i改成%%i。
方法3:Windows PowerShell实现
PowerShell语法更简洁,无需额外配置:
210..310 | ForEach-Object { Copy-Item -Path "images_$($_.ToString('0000')).png" -Destination "C:\你的目标目录路径\" }
方法4:Python 跨平台实现
不想记不同系统命令的话,可以用Python脚本实现,全平台通用:
import os import shutil # 按需修改以下参数即可 start_num = 210 end_num = 310 source_dir = "./你的源目录路径" target_dir = "./你的目标目录路径" os.makedirs(target_dir, exist_ok=True) for num in range(start_num, end_num + 1): filename = f"images_{num:04d}.png" src = os.path.join(source_dir, filename) dst = os.path.join(target_dir, filename) if os.path.exists(src): shutil.copy(src, dst)
注意事项
- 所有路径如果包含空格、特殊字符,必须用英文引号包裹完整路径,避免命令识别出错
- 执行复制前可以先把复制命令替换为打印命令验证匹配结果,比如把
cp/copy/Copy-Item换成echo,确认匹配的文件名正确后再执行真实复制操作,避免误操作
内容的提问来源于stack exchange,提问作者alihank
相关产品推荐
相关产品推荐

