我想创建一个bat
文件,将文件从一个位置移动到一个备份文件夹。条件是我需要在父目录中移动超过30天的所有文件夹。文件夹名称是文件夹的创建日期。
例如: 2012年10月17日的所有文件都在名为10172012的文件夹内。资源文件夹是:
C:\Data\DataIn\Processed\10172012
C:\Data\DataIn\Processed\09172012
C:\Data\DataIn\Processed\08172012
所以今天bat文件应该将文件夹“09172012”,“08172012”移动到目标备份文件夹:
D:\Backup\Processed\
答案 0 :(得分:1)
@echo off
setlocal EnableDelayedExpansion
rem Get Julian Day number of today's date
for /F "tokens=1-3 delims=/" %%a in ("%date%") do (
set /A m=1%%a %% 100, d=1%%b %% 100, y=%%c
)
set /A A=(m-14)/12, todayJDN = (1461*(y+4800+A))/4 + (367*(m-2-12*A))/12 - (3*((y+4900+A)/100))/4 + d - 32075
rem Process all folders
for /D %%a in (*) do (
rem Get Julian Day Number of this folder
set folder=%%a
set /A m=1!folder:~0,2! %% 100, d=1!folder:~2,2! %% 100, y=!folder:~4!
set /A "A=(m-14)/12, folderJDN = (1461*(y+4800+A))/4 + (367*(m-2-12*A))/12 - (3*((y+4900+A)/100))/4 + d - 32075"
rem Move folder if it is older than 30 days
set /A daysOlder=todayJDN - folderJDN
if !daysOlder! gtr 30 move %%a D:\Backup\Processed\
)
朱利安日编号在此处描述:http://www.hermetic.ch/cal_stud/jdn.htm
答案 1 :(得分:0)
使用shell脚本更容易。最后,我使用shell脚本实现了这一点。