![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 12:26 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » (急急急)讨论如何自动删除指定盘符下所有指定类型的文件 |
| 可打印版本 4,483 / 16 |
| 第1楼 softsight | 发表于 2004-06-24 00:00 |
| 初级用户 发帖 5 积分 126 | |
|
(急急急)讨论如何自动删除指定盘符下所有指定类型的文件 由于维护学校机房,把e:盘留给学生存放文件,但学生喜欢把一些小游戏下载下来放在
e:盘,主要是swf,zip,rar,exe文件,我想编写一行命令开机时候自动删除e:盘下的这些文件,怎么编写呢?学生机用的是win2000 pro的系统。 在win2000 pro下编写一个批处理文件,让系统启动时自动执行。 要求:自动删除e:盘下根目录和子目录中的mp3,wave,exe,swf,zip,rar文件 ------------------------------------------------------------------------- 经过尝试,我发现for命令可以实现一些:如下: for /r E:\ %c in (*.exe,*.swf,*.zip,*.rar) do del %c 但学生的游戏老是放在一些有中文名字的目录中如“复件 游戏“等古怪的目录,删除不了这类文件。 请教各位dos高手!!! |
|
| 第2楼 Tamm | 发表于 2004-06-24 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
DEL 加 /s 参数可以删除当前目录和所有子目录中的指定文件。
如在E盘根目录执行 DEL /S *.EXE 则会删除 E盘里所有的 .EXE 文件。 |
|
| 第3楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
删除指定文件和全部空目录 @echo off
e: cd\ echo 以下删除指定文件 del *.mp3 *.wav *.swf *.exe *.zip *.rar /a /s /f /q echo 以下删除所有空目录 :again for /d /r %%1 in (*) do if exist %%1\nul (rd %%1&&goto again) else goto end :end 以上均经过测试,目录为“复件 游戏”的都可以的 (已修改) |
|
| 第4楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
要删除不知名的所有空目录,2000 XP 有FOR /D 参数,但在纯DOS下,怎么实现呢/??因为
在纯DOS下,统配符*不能表示目录,只能表示文件,所以,*\NUL的方法是没用的,.... |
|
| 第5楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
如果以上目录文件都被隐藏,只读的话,可加一句:
attrib -s -r -h *.* /s /d |
|
| 第6楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
如果要删除含有指定后缀的上一级目录及其所有文件:
@echo off e: cd\ attrib -s -r -h *.* /s /d for /d /r %%1 in (*) do if exist %%1\*.mp3 rd %%1 /s /q for /d /r %%1 in (*) do if exist %%1\*.swf rd %%1 /s /q for /d /r %%1 in (*) do if exist %%1\*.exe rd %%1 /s /q for /d /r %%1 in (*) do if exist %%1\*.zip rd %%1 /s /q for /d /r %%1 in (*) do if exist %%1\*.rar rd %%1 /s /q |
|
| 第7楼 softsight | 发表于 2004-06-24 00:00 |
| 初级用户 发帖 5 积分 126 | |
|
谢谢各位的热心帮助,特别是Tamm 和gotomsdos 两位。
经过我试验Tamm兄的方法比较现实简单,当然不能删除已经清空了的目录,这到没什么,基本上del /s *.已经能删除所有文件了,不过仍然有个别的文件,删除时提示“系统拒绝访问“,不知道为何(该程序未运行)。 根据tamm的建议我写了这个批处理: e: cd\ del /s *.exe del /s *.swf del /s *.zip del /s *.rar del /s *.mp3 该程序已经删除学生机上e:盘上所有的非法程序了。 而gotomsdos的批处理程序,似乎不太起作用,一个文件也没被删除,系统提示“系统拒绝访问”或者“找不到指定的文件或者文件夹”或者“该文件不存在”,不知道哪里出了问题。虚心请教。 |
|
| 第8楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
可能因为你用我的批处理是第二次,能删的已经删了,自然提示,找不到文件。。。
关键是有些文件是隐藏和只读的,用我下面的就完全可以了,而且还可以删除所有空目录 @echo off e: cd\ echo 以下删除指定文件 del *.mp3 *.wav *.swf *.exe *.zip *.rar /a /s /f /q echo 以下删除所有空目录 :again for /d /r %%1 in (*) do if exist %%1\nul (rd %%1&&goto again) else goto end :end 以上均经过测试,目录为“复件 游戏”的都可以的 |
|
| 第9楼 softsight | 发表于 2004-06-24 00:00 |
| 初级用户 发帖 5 积分 126 | |
以下是引用gotomsdos在2004-6-24 上午 06:00:46的发言: 没有必要删除隐藏文件吧,我的一些文件都隐藏在下面。学生还不知道隐藏。 |
|
| 第10楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
(新)
可能因为你用我的批处理是第二次,能删的已经删了,自然提示,找不到文件。。。 关键是有些文件是隐藏和只读的,用我下面的就完全可以了,而且还可以删除所有空目录 @echo off e: cd\ echo 以下删除指定文件 del *.mp3 *.wav *.swf *.exe *.zip *.rar /a /s /f /q echo 以下删除所有空目录 :again for /d /r %%1 in (*) do if exist %%1\nul (rd %%1&&goto again) else goto end :end 以上均经过测试,目录为“复件 游戏”的都可以的 |
|
| 第11楼 GOTOmsdos | 发表于 2004-06-24 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
对呀,既然你不想删隐藏的(都是你自己的文件,学生不会隐藏),那当你第二次用我的批处理时,提示找不到或拒绝访问就是正常的呀,保护你自己的文件呀
不想删隐藏的话, 就简单用DEL /S 就行了 |
|
| 第12楼 softsight | 发表于 2004-06-24 00:00 |
| 初级用户 发帖 5 积分 126 | |
|
对了,在win2k运行批处理程序的时候,能不能让打开的dos窗口最小化,让它“安静“地运行呢?
|
|
| 第13楼 哑巴 | 发表于 2004-06-25 00:00 |
| 初级用户 发帖 37 积分 270 | |
|
把它放到开始\程序\启动 中
|
|
| 第14楼 Tamm | 发表于 2004-06-25 00:00 |
| 中级用户 发帖 64 积分 397 | |
以下是引用SOFTSIGHT在2004-6-24 上午 07:05:26的发言: 在批处理最前面使用 @echo off 然后在每条命令后面加 >nul 这样的话,虽然那个命令行窗口不会被隐藏,但批处理文件运行的时候就不会在屏幕上显示任何信息了。 注: 通常情况下,命令执行后返回的会话信息是显示在屏幕上的。你可以使用“重定向”符号 > 将命令返回信息重定向到 NUL(空设备) ,这样就不会在屏幕上,显示该命令返回的会话信息了 |
|
| 第15楼 GOTOmsdos | 发表于 2004-06-25 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
以上两位的方法都没用的
照样出现窗口 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |