用Windows的批处理批量更改文件名

费了半天劲,查了不少的资料,在一个同事的帮助下完成的,
查资料的时候发现,windows自带的帮助是追好用的。
程序代码如下:

@echo off & setlocal EnableDelayedExpansion

@REM 
*********************************************************************************

@REM 
****  以下代码可以将与本程序在同一个目录下的.txt文件从命名                 ****

@REM 
****  原有的文件的名字长度要求是13(包括.txt),新文件名是将原文件的前三位去掉  ****

@REM 
****  例:原文件名是000000100.txt,重命名后000100.txt                          ****

@REM 
*********************************************************************************

@REM 取出.txt文件列表放到临时文件里
dir 
/^|find "*txt" > 1.temp


set oraF=
set newF=
set sta=
     echo 
======================================================================
     echo   Ora File 
^| New File ^| Status
     echo 
======================================================================

 

@REM 循环取临时文件中的数据
for /"eol=# tokens=1,2* delims=\n" %%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

posted @ 2007-12-06 13:24  轻松  阅读(6590)  评论(4编辑  收藏  举报