如何用BAT修改文件名

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:04:28
如何用BAT编写代码能够实现批量修改文件名,而且保留文件中的时间信息,
如:原文件名为NOAA17_20080124_0125_AVHR.L1B
修改为NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_20080124_0125_1100M.L1B
命名规则就是保留时间信息!实现批量处理,也就是说,有很多这样的文件要把它改名!
如:原文件名为NOAA17_20080124_0125_AVHR.L1B
修改为NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_20080124_0125_1100M.L1B
中间的20080124_0125保留就可以 ,改后的名字也一定要上述规则:NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_xxxxxxxx_xxxx_1100M.L1B
补充这样的文件很多,但时间信息不一样,其余都一样!
如另一个文件:NOAA17_20080122_0118_AVHR.L1B
改为:NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_20080122_0118_1100M.L1B

就是说NOAA17_********_****_AVHR.L1B改成NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_********_****_1100M.L1B

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a:-d /b NOAA17_????????_????_AVHR.L1B') do (
REM 对文件夹中所有形如NOAA17_????????_????_AVHR.L1B的文件
set "x=%%i"
REM 把文件名赋给变量x.后面可以用!x!表示x的值(字符串),用!x:~a,b!表示x中跳过a个字符后面的b个字符组成的子串
echo !x! ^>^>^> NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_!x:~7,8!_!x:~16,4!_1100M.L1B
REM 在屏幕上显示: !x! >>> NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_!x:~7,8!_!x:~16,4!_1100M.L1B"
)
echo 请确认
pause
for /f "delims=" %%i in ('dir /a:-d /b NOAA17_????????_????_AVHR.L1B') do (
set "x=%%i"
ren "!x!" "NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_!x:~7,8!_!x:~16,4!_1100M.L1B"
REM 把 !x! 重命名成 NO17_AVHRR_HRPT_L1_ORB_MLT_NUL_!x:~7,8!_!x:~16,4!_1100M.L1B
)
pause
goto :eof