@echo off
setlocal enabledelayedexpansion
::假设这个文件夹为E:\test,实际请自行修改,列出里面的文件
for /f "delims=" %%a in ('dir /b "E:\test\*.*"') do (
::获取文件名
set name=%%~na
::-2表示统一减去2,加减一个数字请自行修改
set /a name=!name!-2
::建立临时文件存放文件夹E:\test\temp,实际请自行修改
if not exist "E:\test\temp\" (md "E:\test\temp\")
::复制文件并重命名
copy "%%a" "E:\test\temp\!name!%%~xa"
)
pause
注:因为在原文件夹更名会出现重名的情况(如15.jpg和17.jpg,如果17.jpg先更名就会有两个15.jpg),所以先把更名后的文件复制到一个临时文件夹
您的采纳是我们的动力和鼓励,请及时点击【采纳回答】
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/f636afc379310a5567b9c803b44543a9832610a3?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答请及时采纳回答
请及时采纳回答
追问多谢你的详细回答,不过出现了这样的情况:系统找不到指定的文件
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/7aec54e736d12f2ee4bab99a4cc2d56284356888?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答更正代码
@echo off
setlocal enabledelayedexpansion
::假设这个文件夹为E:\test,实际请自行修改,列出里面的文件
set "lj=E:\test"
for /f "delims=" %%a in ('dir /b "%lj%\*.*"') do (
::获取文件名
set "name=%%~na"
::-2表示统一减去2,加减一个数字请自行修改
set /a name=!name!-2
::建立临时文件存放文件夹E:\test\temp,实际请自行修改
if not exist "%lj%\temp\" (md "%lj%\temp\")
::复制文件并重命名
copy "%lj%\%%a" "%lj%\temp\!name!%%~xa"
)
pause
请及时采纳回答