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

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

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