![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 02:51 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]for命令遍历后del删除不了? |
| 可打印版本 1,947 / 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个文件。 |
|
| 第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 |