中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]for命令遍历后del删除不了?
« [1] [2] »
作者:
标题: [已结]for命令遍历后del删除不了? 上一主题 | 下一主题
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『楼 主』:  [已结]for命令遍历后del删除不了?

我的目的是,每天备份sql数据库,之后删除之前的7个备份文件。备份是能成功,但是删除不了文件,不知道哪里出来问题,请教大家。
批处理内容如下:
"D:\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlmaint.exe" -U sa -P datascore -D "cdt.dctool" -PlanName backupdata -BkUpDB D:\datascore\databackup\sql2005backup -BkUpMedia DISK
set catalog=D:\datascore\databackup\sql2005backup
@for /f %%i in ('dir /b/ad %catalog%') do (@for /f "skip=7" %%f in ('dir /b/o-n %catalog%\%%i') do del /s/q %catalog%\%%i\%%f)
D:\datascore\databackup\sql2005backup目录下已经有了超过7个文件了。
在线等答案。谢谢大家

[ Last edited by HAT on 2008-12-26 at 17:51 ]

2008-12-25 15:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 2 楼』:  

假如文件名什么有空格的话,肯定是不行的.

2008-12-25 15:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 3 楼』:  

没有空格,只有特殊符号。例如:xxx.yy_zzzz.bak
都是这样的格式

2008-12-25 16:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

需要开延时




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-25 16:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

代码保存为test.bat
双击运行
看看运行过程就知道问什么错了
"D:\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlmaint.exe" -U sa -P datascore -D "cdt.dctool" -PlanName backupdata -BkUpDB D:\datascore\databackup\sql2005backup -BkUpMedia DISK
set catalog=D:\datascore\databackup\sql2005backup
for /f %%i in ('dir /b/ad %catalog%') do (
  for /f "skip=7" %%f in ('dir /b/o-n %catalog%\%%i') do (
    del /s/q %catalog%\%%i\%%f\
  )
  pause
)
pause


   此帖被 +2 点积分    点击查看详情   
评分人:【 maker0321 分数: +2  时间:2008-12-26 19:26




2008-12-25 16:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 6 楼』:  

没有任何报错。但是就是删除不了。我也很郁闷。

2008-12-25 17:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  Re 6楼

把运行结果贴出来看看



2008-12-25 18:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 8 楼』:  

回版主:
按照你的那个带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
请按任意键继续. . .

2008-12-25 18:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 9 楼』:  

自己up一个。

2008-12-26 09:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

D:\datascore\databackup\sql2005backup目录下还有文件夹吗?你是要保留7个文件还是7个文件夹?

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



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2008-12-26 11:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lovus
新手上路





积分 1
发帖 1
注册 2008-12-12
状态 离线
『第 11 楼』:  

新手学习一下。。。拿点积分

2008-12-26 12:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 12 楼』:  



  Quote:
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个文件。

2008-12-26 15:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 13 楼』:  

看下符合要求吗?
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"
[ Last edited by 不得不爱 on 2008-12-26 at 16:04 ]

   此帖被 +4 点积分     点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-26 17:52
评分人:【 maker0321 分数: +2  时间:2008-12-26 19:26




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2008-12-26 16:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 14 楼』:  

运行不得不爱的批处理,提示
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能查找到文件。

2008-12-26 17:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maker0321
初级用户




积分 78
发帖 37
注册 2007-11-5
状态 离线
『第 15 楼』:  

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"
谢谢各位无私的帮助,请结贴。多谢

2008-12-26 17:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: