2013-10-02 105 views
1

我想使用批處理文件按日期重命名文件。現在我的挑戰是,如果文件名存在,它應該在每個文件末尾附加(1)..(2)..(3)。使用批處理文件重命名文件

ren c:\LogFiles\*.log BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%.log 

我也想知道,如果它能夠

  • 重命名文件按照前文的日期,即當前日期-1(如果我今天執行批處理文件時,它重命名爲每
  • 昨天的日期。重命名文件每創建日期。

如果它不是用批處理文件可能請協助電源外殼

回答

1

嘗試一下本作追加的問題:

@echo off &setlocal 
set "logpath=c:\LogFiles" 
for /f "delims=" %%a in ('dir /b /a-d /od "%logpath%\*.log"') do call:doit "%logpath%\%%~a" 
goto:eof 

:doit 
setlocal 
set "npre=BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%" 
:loop 
if defined fcnt (set "nname=%npre% (%fcnt%)%~x1") else set "nname=%npre%%~x1" 
set /a cnt+=1 
set "fcnt=00%cnt%" 
set "fcnt=%fcnt:~-3%" 
if exist "%logpath%\%nname%" goto:loop 
echo ren "%~1" "%nname%" 
ren "%~1" "%nname%" 
endlocal 
exit /b 

如果您有更多的疑問請new questions

+0

謝謝男人會試穿 – user2839151