|
softsight
初级用户
积分 126
发帖 5
注册 2004-6-24
状态 离线
|
『楼 主』:
(急急急)讨论如何自动删除指定盘符下所有指定类型的文件
由于维护学校机房,把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高手!!!
[此贴子已经被作者于2004-6-24 下午 12:08:36编辑过]
|
|
2004-6-24 00:00 |
|
|
Tamm
中级用户
积分 397
发帖 64
注册 2004-4-18
状态 离线
|
『第
2 楼』:
DEL 加 /s 参数可以删除当前目录和所有子目录中的指定文件。
如在E盘根目录执行 DEL /S *.EXE 则会删除 E盘里所有的 .EXE 文件。
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
3 楼』:
删除指定文件和全部空目录
@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
以上均经过测试,目录为“复件 游戏”的都可以的
(已修改)
[此贴子已经被作者于2004-6-24 下午 06:11:51编辑过]
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
4 楼』:
要删除不知名的所有空目录,2000 XP 有FOR /D 参数,但在纯DOS下,怎么实现呢/??因为
在纯DOS下,统配符*不能表示目录,只能表示文件,所以,*\NUL的方法是没用的,....
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
5 楼』:
如果以上目录文件都被隐藏,只读的话,可加一句:
attrib -s -r -h *.* /s /d
[此贴子已经被作者于2004-6-24 下午 06:06:58编辑过]
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
6 楼』:
如果要删除含有指定后缀的上一级目录及其所有文件:
@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
|
|
2004-6-24 00:00 |
|
|
softsight
初级用户
积分 126
发帖 5
注册 2004-6-24
状态 离线
|
『第
7 楼』:
谢谢各位的热心帮助,特别是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的批处理程序,似乎不太起作用,一个文件也没被删除,系统提示“系统拒绝访问”或者“找不到指定的文件或者文件夹”或者“该文件不存在”,不知道哪里出了问题。虚心请教。
[此贴子已经被作者于2004-6-24 下午 06:10:59编辑过]
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
8 楼』:
可能因为你用我的批处理是第二次,能删的已经删了,自然提示,找不到文件。。。
关键是有些文件是隐藏和只读的,用我下面的就完全可以了,而且还可以删除所有空目录
@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
以上均经过测试,目录为“复件 游戏”的都可以的
[此贴子已经被作者于2004-6-24 下午 06:17:06编辑过]
|
|
2004-6-24 00:00 |
|
|
softsight
初级用户
积分 126
发帖 5
注册 2004-6-24
状态 离线
|
『第
9 楼』:
Quote: | 以下是引用gotomsdos在2004-6-24 上午 06:00:46的发言:
如果要删除含有指定后缀的上一级目录及其所有文件:
@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
|
|
没有必要删除隐藏文件吧,我的一些文件都隐藏在下面。学生还不知道隐藏。
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
10 楼』:
(新)
可能因为你用我的批处理是第二次,能删的已经删了,自然提示,找不到文件。。。
关键是有些文件是隐藏和只读的,用我下面的就完全可以了,而且还可以删除所有空目录
@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
以上均经过测试,目录为“复件 游戏”的都可以的
|
|
2004-6-24 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
11 楼』:
对呀,既然你不想删隐藏的(都是你自己的文件,学生不会隐藏),那当你第二次用我的批处理时,提示找不到或拒绝访问就是正常的呀,保护你自己的文件呀
不想删隐藏的话, 就简单用DEL /S 就行了
[此贴子已经被作者于2004-6-24 下午 06:29:57编辑过]
|
|
2004-6-24 00:00 |
|
|
SOFTSIGHT
初级用户
积分 126
发帖 5
注册 2004-6-24
状态 离线
|
『第
12 楼』:
对了,在win2k运行批处理程序的时候,能不能让打开的dos窗口最小化,让它“安静“地运行呢?
|
|
2004-6-24 00:00 |
|
|
哑巴
初级用户
老大不小
积分 270
发帖 37
注册 2003-12-31
状态 离线
|
『第
13 楼』:
把它放到开始\程序\启动 中
|
C:\>给我$100,0000
Bad command or file name |
|
2004-6-25 00:00 |
|
|
Tamm
中级用户
积分 397
发帖 64
注册 2004-4-18
状态 离线
|
『第
14 楼』:
Quote: | 以下是引用SOFTSIGHT在2004-6-24 上午 07:05:26的发言:
对了,在win2k运行批处理程序的时候,能不能让打开的dos窗口最小化,让它“安静“地运行呢? |
|
在批处理最前面使用 @echo off
然后在每条命令后面加 >nul
这样的话,虽然那个命令行窗口不会被隐藏,但批处理文件运行的时候就不会在屏幕上显示任何信息了。
注: 通常情况下,命令执行后返回的会话信息是显示在屏幕上的。你可以使用“重定向”符号 > 将命令返回信息重定向到 NUL(空设备) ,这样就不会在屏幕上,显示该命令返回的会话信息了
|
|
2004-6-25 00:00 |
|
|
gotomsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
15 楼』:
以上两位的方法都没用的
照样出现窗口
|
|
2004-6-25 00:00 |
|