用Windows的批处理批量更改文件名
费了半天劲,查了不少的资料,在一个同事的帮助下完成的,
查资料的时候发现,windows自带的帮助是追好用的。
程序代码如下:
查资料的时候发现,windows自带的帮助是追好用的。
程序代码如下:
@echo off & setlocal EnableDelayedExpansion
@REM *********************************************************************************
@REM **** 以下代码可以将与本程序在同一个目录下的.txt文件从命名 ****
@REM **** 原有的文件的名字长度要求是13(包括.txt),新文件名是将原文件的前三位去掉 ****
@REM **** 例:原文件名是000000100.txt,重命名后000100.txt ****
@REM *********************************************************************************
@REM 取出.txt文件列表放到临时文件里
dir /B ^|find "*txt" > 1.temp
set oraF=
set newF=
set sta=
echo ======================================================================
echo Ora File ^| New File ^| Status
echo ======================================================================
@REM 循环取临时文件中的数据
for /f "eol=# tokens=1,2* delims=\n" %%i in (1.temp) do (
set oraF=%%i
@REM 截取旧的文件名,获得新的文件名
set newF=!oraF:~3,10!
@REM 新旧文件的存在判断
if exist !oraF! ( if not exist !newF! ( set sta=OK) else ( set sta=New file is exist! )
) else ( set sta=Ora file is not exist! )
if !sta!==OK (
@REM 用ren命令重命名,如果出错将错误信息?出到2.temp文件中
ren !oraF! !newF! > 2.temp
if not exist !oraF! ( if exist !newF! ( set sta=sucess ) else ( set sta=Error) )
else ( set sta=Error )
)
echo !oraF! ^| !newF! ^| !sta!
@REM 如果出错将错误信息输出到控制台中
if exist 2.temp (
type 2.temp
del 2.temp
)
echo ----------------------------------------------------------------------
)
del 1.temp
@REM *********************************************************************************
@REM **** 以下代码可以将与本程序在同一个目录下的.txt文件从命名 ****
@REM **** 原有的文件的名字长度要求是13(包括.txt),新文件名是将原文件的前三位去掉 ****
@REM **** 例:原文件名是000000100.txt,重命名后000100.txt ****
@REM *********************************************************************************
@REM 取出.txt文件列表放到临时文件里
dir /B ^|find "*txt" > 1.temp
set oraF=
set newF=
set sta=
echo ======================================================================
echo Ora File ^| New File ^| Status
echo ======================================================================
@REM 循环取临时文件中的数据
for /f "eol=# tokens=1,2* delims=\n" %%i in (1.temp) do (
set oraF=%%i
@REM 截取旧的文件名,获得新的文件名
set newF=!oraF:~3,10!
@REM 新旧文件的存在判断
if exist !oraF! ( if not exist !newF! ( set sta=OK) else ( set sta=New file is exist! )
) else ( set sta=Ora file is not exist! )
if !sta!==OK (
@REM 用ren命令重命名,如果出错将错误信息?出到2.temp文件中
ren !oraF! !newF! > 2.temp
if not exist !oraF! ( if exist !newF! ( set sta=sucess ) else ( set sta=Error) )
else ( set sta=Error )
)
echo !oraF! ^| !newF! ^| !sta!
@REM 如果出错将错误信息输出到控制台中
if exist 2.temp (
type 2.temp
del 2.temp
)
echo ----------------------------------------------------------------------
)
del 1.temp