移动7天前备份文件目录示例脚本
移动7天前备份文件目录示例脚本
@echo off
setlocal
:: 设置参数
set SOURCE_PATH=F:\backup :: 源目录
set DESTINATION_PATH=Z:\backup :: 目标共享目录
:: 获取当前日期和7天前的日期
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (
set today=%%c%%a%%b
)
for /f "tokens=1-3 delims=:." %%a in ('time /t') do (
set current_time=%%a%%b
)
set seven_days_ago=%today% - 7
for /f "tokens=1-3 delims=-" %%a in ("%seven_days_ago%") do (
set /a year=%%a, month=100+%%b, day=100+%%c
set /a day-=7
if %day% lss 100 (set day=0%day%) else (set day=%day:~1%)
if %month% lss 100 (set month=0%month%) else (set month=%month:~1%)
)
set seven_days_ago=%year%%month%%day%
:: 获取源目录中的所有文件并检查修改日期
for %%F in (%SOURCE_PATH%\*) do (
for /f "tokens=1-3 delims=/ " %%a in ('dir /tc "%%F"') do (
set file_date=%%c%%a%%b
if %file_date% lss %seven_days_ago% (
set FILE_NAME=%%~nxF
set FULL_PATH=%%F
set DEST_FULL_PATH=%DESTINATION_PATH%\%%~nxF
:: 尝试移动文件
move "%%F" "%DESTINATION_PATH%" >nul 2>&1
if %errorlevel% equ 0 (
echo Moved: %FILE_NAME%
) else (
echo Failed to move: %FILE_NAME%. Error code: %errorlevel%
)
)
)
)
:: 结束脚本
echo Script completed.
endlocal