我正在處理批處理文件以讀取文件夾中的文件,如果它們大於4天以前,請將它們移動到存檔\ YYYY \ MM文件夾中結構體。下面的代碼,因爲它代表使用批處理文件按日期清理目錄
::MOVE FILES THAT ARE IN THE ERROR FOLDER TO ARCHIVE ACCORDING TO FILES YEAR AND MONTH @echo off set "source=C:\Users\user\Desktop\test" set "targetRoot=C:\Users\user\Desktop\test\archive" For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @( set mm=%%A set dd=%%B set yyyy=%%C ) set currdate=%yyyy%%mm%%dd% ::echo %currdate% set /a currdate-=7 ::echo %currdate% for %%F in ("%source%\*") do ( for /f "tokens=1,2,3 delims=/ " %%D in ("%%~tF") do ( SET fileDT=%%F%%D%%E if /I %currdate% GTR %fileDT% ( if not exist "%targetRoot%\%%F" mkdir "%targetRoot%\%%F" if not exist "%targetRoot%\%%F\%%D" mkdir "%targetRoot%\%%F\%%D" move "%%~fF" "%targetRoot%\%%F\%%D" ) ) )
的問題是,經過我添加了
if /I %currdate% GTR %fileDT%線,它不再知道什麼%%〜FF的,因此要移動的文件。
我應該注意到我是全新的批處理文件,我主要修改我在網上找到的代碼。
您是對的,先生。我改變了參數,它的工作原理。但是,fileDT var在設置一次後不會更新。我在最後添加了一個SET fileDT =以清除它,但它仍然以所有後續文件的第一個文件的日期運行。對此有任何想法? – Dakine83 2012-01-28 01:42:33