下面的腳本將在YYYYMMDD中獲取當前的本地日期(禮貌this answer)。
它然後通過在一個給定的目錄中的所有文件夾循環(在我的情況,這是包含腳本的文件夾下面的測試子文件夾),並檢查文件名的最後8個字符。如果它們不符合今天的日期,則會刪除該文件夾。
的/Q
禁用的確認文件夾刪除。如果你想被提示確認刪除文件夾之前,刪除此。
@ECHO off & setlocal EnableDelayedExpansion
REM Get the local datetime
FOR /F "usebackq tokens=1,2 delims==" %%i IN (`wmic os get LocalDateTime /VALUE 2^>NUL`) DO IF '.%%i.'=='.LocalDateTime.' SET ldt=%%j
REM Set the datetime to YYYYMMDD format.
SET today=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%
REM For every file in the folder test:
FOR /D %%f IN (.\test\*) DO (
REM Store the folder name temproarily
SET folder=%%f
REM Get just the ending date part of the folder name
SET folderpart=!folder:~-8!
REM If it doesn't match todays date, delete the folder.
IF NOT !folderpart!==!today! RD /Q %%f
)
@ECHO ON
您可以獲取當前日期爲'/ F 「跳過= 1個delims =」 %% X IN( 'WMIC OS獲得localdatetime')做,如果沒有定義指明MyDate設置指明MyDate = %% x'和你那麼需要一點數學數學。它得到多一點的時間,雖然。 – Joey 2011-05-19 14:47:35