中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 05:07
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]for命令遍历后del删除不了?
可打印版本  1,956 / 15
第1楼 maker0321 发表于 2008-12-25 15:23
初级用户 发帖 37 积分 78
[已结]for命令遍历后del删除不了?
我的目的是,每天备份sql数据库,之后删除之前的7个备份文件。备份是能成功,但是删除不了文件,不知道哪里出来问题,请教大家。
批处理内容如下:



D:\datascore\databackup\sql2005backup目录下已经有了超过7个文件了。
在线等答案。谢谢大家

[ Last edited by HAT on 2008-12-26 at 17:51 ]
第2楼 kissbill 发表于 2008-12-25 15:56
初级用户 发帖 35 积分 61
假如文件名什么有空格的话,肯定是不行的.
第3楼 maker0321 发表于 2008-12-25 16:21
初级用户 发帖 37 积分 78
没有空格,只有特殊符号。例如:xxx.yy_zzzz.bak
都是这样的格式
第4楼 yishanju 发表于 2008-12-25 16:39
银牌会员 发帖 1,357 积分 1,488
需要开延时
第5楼 HAT 发表于 2008-12-25 16:44
版主 发帖 5,017 积分 9,023
代码保存为test.bat
双击运行
看看运行过程就知道问什么错了
第6楼 maker0321 发表于 2008-12-25 17:21
初级用户 发帖 37 积分 78
没有任何报错。但是就是删除不了。我也很郁闷。
第7楼 HAT 发表于 2008-12-25 18:21
版主 发帖 5,017 积分 9,023
Re 6楼
把运行结果贴出来看看
第8楼 maker0321 发表于 2008-12-25 18:43
初级用户 发帖 37 积分 78
回版主:
按照你的那个带pause的批处理
没有运行结果,没有返回信息。
D:\>a1.bat

D:\>set catalog=D:\datascore\databackup\sql2005backup

D:\>for /F %i in ('dir /b/ad D:\datascore\databackup\sql2005backup') do (
for /F "skip=7" %f in ('dir /b/o-n D:\datascore\databackup\sql2005backup\%i') do
(del /s/q D:\datascore\databackup\sql2005backup\%i\%f\ )
pause
)

D:\>pause
请按任意键继续. . .
第9楼 maker0321 发表于 2008-12-26 09:55
初级用户 发帖 37 积分 78
自己up一个。
第10楼 不得不爱 发表于 2008-12-26 11:53
超级版主 发帖 2,044 积分 5,310 来自 四川南充
D:\datascore\databackup\sql2005backup目录下还有文件夹吗?你是要保留7个文件还是7个文件夹?

[ Last edited by 不得不爱 on 2008-12-26 at 11:55 ]
第11楼 lovus 发表于 2008-12-26 12:41
新手上路 发帖 1 积分 1
新手学习一下。。。拿点积分
第12楼 maker0321 发表于 2008-12-26 15:25
初级用户 发帖 37 积分 78
Originally posted by 不得不爱 at 2008-12-26 11:53 AM:
D:\datascore\databackup\sql2005backup目录下还有文件夹吗?你是要保留7个文件还是7个文件夹?

[ Last edited by 不得不爱 on 2008-12-26 at 11:55 ]


D:\datascore\databackup\sql2005backup目录下面只有文件,是要保留7个文件。
第13楼 不得不爱 发表于 2008-12-26 16:03
超级版主 发帖 2,044 积分 5,310 来自 四川南充
看下符合要求吗?


[ Last edited by 不得不爱 on 2008-12-26 at 16:04 ]
第14楼 maker0321 发表于 2008-12-26 17:26
初级用户 发帖 37 积分 78
运行不得不爱的批处理,提示
D:\>for /F "skip=7 delims=" %f in ('dir/o-d/a-d/b D:\datascore\databackup\sql200
5backup) do del /q "D:\datascore\databackup\sql2005backup\%f"
系统找不到文件 'dir/o-d/a-d/b D:\datascore\databackup\sql2005backup。

但是我直接dir/o-d/a-d/b D:\datascore\databackup\sql2005backup能查找到文件。
第15楼 maker0321 发表于 2008-12-26 17:39
初级用户 发帖 37 积分 78
set catalog=D:\datascore\databackup\sql2005backup
for /f "skip=7 delims=" %%f in ('dir/o-d/a-d/b %catalog%) do del /q "%catalog%\%%f"

少了个分号,不好意思没看到。现在可以执行了。贴出最终版本
set catalog=D:\datascore\databackup\sql2005backup
for /f "skip=7 delims=" %%f in ('dir/o-d/a-d/b %catalog%') do del /q "%catalog%\%%f"
谢谢各位无私的帮助,请结贴。多谢
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023