- 帖子
- 4
- 积分
- 15
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2018-2-18
|
@echo off
rem 参数设置,运行前请手动修改.
rem 源文件夹
set src=D:\abc
rem 目标文件夹
set dst=D:\bbh
rem 主体
rem ================================================
rem 要求源目录和目标路径已存在.
rem 否则,结束批处理.
rem 请建立相应的文件夹后重新运行批处理
if not exist %src% echo path %src% not exist & goto :eof
if not exist %dst% echo path %dst% not exist & goto :eof
setlocal EnableDelayedExpansion
rem 按规则重命名并移动所有.jpg .JPG文件
rem 如果指定的源目录下有子目录,所有子目录都会被忽略.
for %%I in ( %src%\*.jpg %src%\*.JPG ) do (
rem 按规则生成新文件名
set fname=%%~nI
set fdst=!fname:_=!_10.jpg
set fdst=%dst%\!fdst!
rem 有可能产生重名文件,如 a_b.jpg 和 a_b_.jpg
rem 都对应 ab_10.jpg
if exist !fdst! (
rem 对重名文件.增加递增的后缀_dddd
rem 形如 ab_10_1.jpg
set count=0
set new_fdst=!fdst:~0,-4!
if exist !new_fdst!_*.jpg (
dir /b !new_fdst!_*.jpg | sort /r > tmp.txt
set /p count=<tmp.txt
rem 此处限制了count后缀最大为 99999999 (8个9),
rem 多于此数目,运行结果会出错
set count=!count:_= !
set count=!count:~-7,3!
)
set /a count+=1
set new_fdst=!new_fdst!_!count!.jpg
echo new_fdst=!new_fdst!
move /-Y %%~fI !new_fdst! > nul
) else move /-Y %%~fI !fdst! > nul
)
if exist tmp.txt del tmp.txt |
|