中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 01:03
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 请问怎么样才能移动N天前的文件
可打印版本  738 / 2
第1楼 l80d 发表于 2007-10-08 20:31
初级用户 发帖 9 积分 26
请问怎么样才能移动N天前的文件
操作系统win2003
目前我的文件夹D:\Logs\下有上万个1k到5k的小文件,
想搞个批处理把它移动到D:\backup\下面.

根据willsort的代码修改如下:
@echo off
if "%1"==":" goto %2
if exist %temp%.\_DateDel.bat %temp%.\_DateDel.bat
%0 : Update 2007-08-20 2007-08-21 2007-08-22 2007-08-23 2007-08-24 2007-08-25 2007-08-26

:Update
setlocal EnableExtensions
set today=%date:~0,10%
if not "%today%"=="%9" %0 : Update %4 %5 %6 %7 %8 %9 %today%
echo %0 : Update %3 %4 %5 %6 %7 %8 %9 >%temp%.\_DateDel.bat

:Delete
for /r %%f in (*.*) do if "%%~tf" LEQ "%3" echo move "%%f" D:\backup\

:End

可是没用,请问该怎么改?
第2楼 l80d 发表于 2007-10-08 21:34
初级用户 发帖 9 积分 26
在坛子里找找,终于搞定了。

MoveOldFiles.cmd

@echo off
if "%1"=="" goto _usage
set dst=.\.
if not "%2"=="" if exist %2\. (set dst=%2\.) else (goto _err1)

for /r %dst% %%f in (*.*) do if %%~tf LSS %1 Move /y %%f D:\backup\ && echo Move %%f

goto _quit

:_usage
echo DelOldFile.cmd move files before assigned folder and date
echo Version 1.0 Copyleft by Climbing
echo syntax: DelOldFile ^<Date^>
echo ^<Date^> Must assigned parameter,Date format:%date%,Files before the assigned date will be move(not include the assigned date)
echo Optional parameter,Assign the folder which files want to be moveed,default is current folder
goto _quit

:_err1
echo Err:Assigned folder:%2 not exist!

:_quit
set dst=
:End

用法:
MoveOldFiles 2007-08-15 D:\Logs
把2007-08-15以前在D:\Logs下的文件,移动到D:\backup\下
还没把文件要移动到文件设为参数

目前这命令只能把所有文件移动到目标文件夹下
不知道高手能不能修改下,保持被移动文件的目录架构?


[ Last edited by l80d on 2007-10-8 at 09:54 PM ]
第3楼 wudixin96 发表于 2007-10-09 09:04
银牌会员 发帖 931 积分 1,928
上面的脚本移动的是几号前的文件,而不是几天前的文件。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023