中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 请教大家一个批处理的问题 上一主题 | 下一主题
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『楼 主』:  请教大家一个批处理的问题 使用 LLM 解释/回答一下

请问有没有一个批处理能实现删除一个目录中的除开指定一类文件外(如*.mp3)的其它所有的文件,以及子文件夹.包括隐藏的和只读的等...


2007-3-22 05:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

有这样的批处理,不过要考虑好要达到的要求,然后再写代码。
因为这个包括的可能情况太多了




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2007-3-22 06:13
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

把你要的文件先移出这目录,再彻底灭了它,最后重建目录,把文件移回去。
这样处理似乎简单点,可以少动些脑筋。


2007-3-22 06:22
查看资料  发短消息  网志   编辑帖子  回复  引用回复
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

for /f "tokens=* delims=" %%i in ('dir /a-d /b /s c:\test\') do (
if not %%~xi==.mp3 del "%%i" /f /a /q)
For /f "tokens=* delims=" %%i in ('dir /ad/b/s c:\test\ ^|sort /r') DO (
attrib -h -s -r "%%i"
rd /q "%%i")

Last edited by balinger on 2007-3-22 at 08:34 AM ]


   此帖被 +1 点积分    点击查看详情   
评分人:【 zzhh612 分数: +1  时间:2007-3-22 11:43


2007-3-22 08:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

请自行测试

@echo off
attrib -h -s -r /s /d c:\test\*.*
for /f "delims=" %%i in ('dir /a-d /b /s c:\test\^|find /v ".mp3" 2^>nul') do (
del /q "%%i" 2>nul
rd /q "%%~dpi" 2>nul
)
pause


Last edited by zh159 on 2007-3-21 at 11:25 PM ]


2007-3-22 09:36
查看资料  发短消息  网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

我现在对FOR还是一无所知,但是我认为可以多写点代码

cd \你要进入的目录
copy *.你要的后缀名 (也可以用xcopy)
cd..
deltree 你不要的那个目录

这样应该也是一种方法吧。我不会FOR,所以只能这么想了。


2007-3-22 09:41
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (309843581)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

rd /q 可以直接去处文件夹


2007-3-22 09:53
查看资料  发短消息  网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

Originally posted by zh159 at 09:53:
rd /q 可以直接去处文件夹


rd不是只能删除空目录吗? 这里因该不好用吧。


2007-3-22 09:56
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (309843581)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

错了,应该是rd /s /q

rd/?

Last edited by zh159 on 2007-3-21 at 09:28 PM ]


2007-3-22 10:25
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 10 楼』:  四楼的balinger,谢谢你的答复 使用 LLM 解释/回答一下

我试用了一下你给出的代码,基本上满足了我的意思,只是我还得把文件移到根目录文件夹中,再删除余下的空文件夹.这个功能也可以加入到其中吗?(就是把指定留下的文件移到第一个文件夹中,不留下子文件夹)...谢了,很佩服你.


2007-3-22 10:44
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 11 楼』:  也感谢五楼zh159的答复.... 使用 LLM 解释/回答一下

我试用了你给的代码,有一个BUG,就是没有能处理我的隐藏文件和文件夹.不过仍就谢了.愿共同学习.


2007-3-22 10:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

attrib -h -s -r /s /d
这句话就可以把当前目录下所有的文件以及子文件夹、子文件夹内的的所有文件都去处“隐藏、系统、只读”属性

attrib -h -s -r /s /d c:\test\

Last edited by zh159 on 2007-3-21 at 10:49 PM ]


2007-3-22 11:47
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 13 楼』:  回12楼 使用 LLM 解释/回答一下

我也知道你的意思,但我经过运行,确不能处理掉隐藏文件和文件夹.代码是我直接复制到文本后,再改成.BAT的.我也在找这个问题.
好像你的批处理只能放在第一个目录下才能运行正常.若修改成
attrib -h -s -r /s /d c:\test 后反而在目录下也运行不正常了.

Last edited by zzhh612 on 2007-3-22 at 12:03 PM ]


2007-3-22 11:52
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

attrib -h -s -r /s /d c:\test\*


rd /s /q是直接删除目录+里面的文件,如有mp3文件也一样删除,所以用rd /q

Last edited by zh159 on 2007-3-21 at 11:09 PM ]


2007-3-22 12:06
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 15 楼』:  回zh159 使用 LLM 解释/回答一下

搞定了,要将第一句改为attrib -h -s -r /s /d c:\test\*.*

效果与balinger的代码一样.

谢谢.我也有所长劲了...

Last edited by zzhh612 on 2007-3-22 at 12:24 PM ]


2007-3-22 12:21
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: