怎么用dos写一个批处理,要求按时间删除旧文件,只保留最新文件,因为我要做数据库定时备份,在线等

能实现的,给积分20有人知道吗?再加20分,40分,有人能回答吗... 能实现的,给积分20
有人知道吗?再加20分,40分,有人能回答吗
展开
 我来答
xclimbing
2012-10-22 · TA获得超过1835个赞
知道大有可为答主
回答量:3040
采纳率:100%
帮助的人:2068万
展开全部
用for命令处理dir /b/o-d的列表,跳过前面不需要删除的部分。dir /o-d是按时间倒序排列。

for /f "skip=1 tokens=* delims=" %i in ('dir /b/o-d 你的备份目录) do @del /f/q "%i"

上面的命令只是给出一个大概的样子,调整skip=后面的参数,可以选择跳过几个文件不删除,剩下的你还要自己调试一下。建议你先在@后面加上echo 进行调试,以免误删不能删除的文件。调试好后再去掉echo。
追问
我见过网上有人这样做,但是不明白什么意思
@echo off
FOR /f "usebackq skip=4 tokens=4,* delims= " %%i IN (`dir /x /o:-d`) DO (del %%i
goto end)
:end
echo ok!
追答
你学一下for命令的用法就知道了。跟我的意思差不多,但它的不如我的好用。
hnsz2k
2012-10-22 · TA获得超过1582个赞
知道大有可为答主
回答量:1360
采纳率:100%
帮助的人:1436万
展开全部
@echo off
set n=2
::保留最近 n 天的文件(早于 n 天就删除)
set p=d:\data
::操作的目录
robocopy /s "%p%" d:\xxxxxx /minage:%n% /mov
rd /s /q d:\xxxxxx
更多追问追答
追问
你这个不是删除,是移动和拷贝到令一个文件夹下,和我的要求完全不一样。
我见过网上有人这样做,但是不明白什么意思,能帮我解释下吗
@echo off
FOR /f "usebackq skip=4 tokens=4,* delims= " %%i IN (`dir /x /o:-d`) DO (del %%i
goto end)
:end
echo ok!
追答
我这个是简单实现你的要求的代码,先把满足条件的文件移动到一个文件夹,再删掉这个文件夹。
结果完全一样。

你提供的代码有明显的错误,已经无法理解它的真实意图。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2012-10-22 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4773万
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式