一个A文件夹里面有B和C等若干个子文件夹,子文件夹里有多个不同类型的图片文件,如JPG,BMP,PNG等,如何写一个批处理,达到以下三个要求
(1)将B和C文件夹里面的文件按原文件名称的排列顺序按 001,002,003....的顺序重新命名
(2)但B和C文件夹的文件不能连续重命名下去,如B文件夹的最后一个文件是023.jpg,则C文件的第一个文件不能顺序命名为024.PNG,必须又自动从1开始重新命名为001.PNG
(3)批处理文件放在A文件夹内则可执行操作
此代码win7下测试成功
希望能帮助到你 望采纳
显示命令语法不正确
追答@echo off&setlocal enabledelayedexpansion保存为bat放在A文件夹执行
显示命令语法不正确
追答你是否是直接复制上面的代码(不要复制前面的行号)
已经测试过,语法是正确的,如果要包含子文件夹的子文件夹,则将for /d 改为for /r /d
@echo off&setlocal enabledelayedexpansion
for /r /d %%a in (*.*) do (
pushd %%a
set n=1000
for /f "delims=" %%B in ('dir /a-d /b /on^|findstr /i "jpg$ bmp$ png$"') do (
set /a n+=1
set m=!n:~1!
ren "%%B" "!m!%%~xB"
)
popd
)
试了一下,如果文件名比较长而且带有中文或符号的,有些能成功命名,有些不能,不知道为什么
还有如果不限定文件类型的话如何修改呢
任何文件都按规则重命名,代码不包括每行前的数字(行号)
重命名时文件名使用短名,希望这样能解决长文件名重命名问题