@echo off
setlocal EnableDelayedExpansion
set "source=\source"
set "destination=\bak"
for /r "%source%" %%f in ("*") do (
echo %%~nxf
set "file=%%~nxf"
set "filepath=%%f"
echo !file!
echo !filepath!
for %%I in ("!filepath!") do (
set "mod_date=%%~tI"
)
echo File modified date is: !mod_date!
set "date=!mod_date!"
echo "!date!"
set "year=!date:~0,4!"
set "month=!date:~5,2!"
if not exist "%destination%\!year!!month!" mkdir "%destination%\!year!!month!"
move /y "!filepath!" "%destination%\!year!!month!\!file!"
)
for /f "delims=" %%a in ('dir /ad /b /s %source%\^|sort /r') do (
rd "%%a">nul 2>nul &&echo 空目录"%%a"成功删除!
)
for /D %%i in ("%destination%\*") do (
forfiles /p "%%i" /s /d -180 /m *.* /c "cmd /c del @path" &&echo 180天前过期文件成功删除!
)
for /f "delims=" %%a in ('dir /ad /b /s %destination%\^|sort /r') do (
rd "%%a">nul 2>nul &&echo 空目录"%%a"成功删除!
)
dos转移文件并删除过期文件、源目录及目标目录空文件夹
于 2024-04-09 09:15:23 首次发布