如何在win7下用.bat,批量修改不同文件但命名规则相同的文件名

比如这个文件名,GF1_PMS1_E119.2_N36.4_20171002_L1A0002645283-MSS1.img,同一类型的有好多,在同一个文件夹中,批量修改之后是GF1-1002-5283.img,也就是说每个文件的文件名位数是相同的,修改之后保留当中的某些位数并以“-”号隔开,如何进行批量处理。

@echo off & title 批量更名 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /a-d/b *.img') do (
    for /f "tokens=1,5,6 delims=_-" %%b in ('echo "%%~a"') do (
        set "Str1=%%~b"
        set "Str2=%%~c"
        set "Str3=%%~d"
    )
    ren "%%~a" "!Str1!-!Str2:~-4!-!Str3:~-4!%%~xa" && (
        echo "%%~a" 更名至 "!Str1!-!Str2:~-4!-!Str3:~-4!%%~xa"
    ) || (
        echo "%%~a" 更名失败
    )
)
pause

脚本放在那些img文件一起后执行。

温馨提示:答案为网友推荐,仅供参考