費了半天勁,查了不少的資料,在一個同事的協助下完成的,
查資料的時候發現,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