Board logo

标题: [原创] [批处理命令一日一教学](7)删除文件:del[2009.2.12更新] [打印本页]

作者: namejm    时间: 2009-1-1 17:07     标题: [批处理命令一日一教学](7)删除文件:del[2009.2.12更新]

[一日一教学]批处理系列帖子索引 http://www.bathome.net/thread-2576-1-1.html

标题:一日一教学系列7_文件删除:del
首发地址:http://bbs.bathome.net/topicadmin.php?tid=2962
首发日期:2009.01.01
更新日期:无

上一篇:文件复制:copy http://bbs.bathome.net/viewthread.php?tid=2863
下一篇:重命名文件(夹):ren http://bbs.bathome.net/viewthread.php?tid=3318

  删除文件使用的命令是del,它的全称是delete。(另:erase与del等效,感谢 yslyxqysl 提醒

  del命令的用法很简单,使用 "del 文件路径" 的格式就可以了。比如,想删除D盘根目录下的test.txt,使用del d:\test.txt即可。

  但是,并不是所有的文件都可以只用del命令就可以搞定,比如具有隐藏属性、只读属性或者系统属性的文件,假如d:\test.txt具有隐藏属性,如果仅仅是 del d:\test.txt 的话,d:\test.txt会纹丝不动。如何删除它?这时候,就需要对del加上一些辅助参数了,隐藏属性是hidden,使用del /a:h,只读属性是read,使用del /a:r,系统属性是system,使用del /a:s,如果不知道文件是什么属性,那么,使用del /a即可——不过有一种情况是例外,当文件具有只读属性的时候,还得添加 del /a /f 参数,所以,如果要对不知道属性的文件进行强制删除,使用 del /a /f 语句是最保险的做法。在这里,/f  参数表示强制删除只读属性文件的意思,f取自force,也就是强制的意思。

  有段时间,威金病毒肆虐网络,以摧枯拉朽之势毁灭了不少文件,其中,最关键的一点是在每个目录下生成了一个desktop.ini文件,只要把这些desktop.ini文件删除,这个病毒就没有了危害性。要删除每个目录下的desktop.ini文件,如果点开一个个的子文件夹删除的话,将不胜其烦,如果使用del命令,简单的一条语句就可以搞定,那就是:在指定目录下执行 del /a /f /s desktop.ini 命令。在这里,/s 表示搜索当前目录下的所有子文件夹,并删除指定文件的意思,s取自sub,表示“从属的”、“子目录的”的含义。

  删除文件是件十分危险的事情,稍有不慎,就可能删掉了重要的文件,所以,在执行删除操作的时候,需要小心谨慎。如果需要在删除之前进行确认的话,可以添加一个参数:/p。

  当然,对于十分有把握的删除操作,并不需要逐一确认的,可以选择静默删除模式,这时候,需要使用参数:/q,也就是 quiet 的缩写形式
作者: yslyxqysl    时间: 2009-1-1 17:10

还有,del和erase等价。
作者: wuha3619    时间: 2009-1-1 17:38

呵呵 进来学习了。 多谢
作者: coolhui    时间: 2009-1-1 23:45

学习了,没想到del命令还有这么多学问,谢谢楼主分享·~~~
作者: wolhh    时间: 2009-1-21 13:30

努力学习中~~~~~~~~
作者: 523066680    时间: 2009-1-24 13:04

还有....delete 跟del .......
作者: 心愿怕人    时间: 2009-1-28 16:24

[email]340458053@QQ.COM[/email],这个是我的邮箱!希望有学习资料的可以给我点
作者: 523066680    时间: 2009-1-28 17:25

对于ls 的内容 大家有何观点……

我以为,学习还是靠主动。 找资料这种事情……

[ 本帖最后由 523066680 于 2009-1-28 17:26 编辑 ]
作者: tangshikan    时间: 2009-1-29 13:02

辛苦楼主了,谢谢分享
作者: w2008k    时间: 2009-1-29 20:24

学习中~~~~~~~
作者: batman    时间: 2009-2-13 01:20

跟两段代码,加深理解,同时突出下del *.*命令
这一段是生成一个test文件夹,并在该文件夹下随机生成一系列文件的代码:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=abcdefghijklmnopqrstuvwxyz0123456789"
  3. set "code=jpg txt bat exe wma mp3"
  4. md test&cd test
  5. for /l %%a in (1,1,20) do (
  6.     for /l %%b in (1,1,9) do (
  7.           set /a a=!random!%%36
  8.           call,set "var=!var!%%str:~!a!,1%%"
  9.      )
  10.     set /a b=!random!%%5+1&call :lp
  11.     set "var="
  12. )
  13. goto :eof
  14. :lp
  15. for /f "tokens=%b%" %%c in ("%code%") do echo.>!var!.%%c
复制代码
第二段是用来删除test中所有的文件的:
  1. @echo off&del /q /f test\*.*
复制代码

作者: whedu    时间: 2009-2-24 13:38

学习完毕,del是delete的缩写,其与erase等效。
作者: irresolute    时间: 2009-3-13 10:02     标题: 这段代码有误

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=abcdefghijklmnopqrstuvwxyz0123456789"
  3. set "code=jpg txt bat exe wma mp3"
  4. md test&cd test
  5. for /l %%a in (1,1,20) do (
  6.     for /l %%b in (1,1,9) do (
  7.           set /a a=!random!%%36
  8.           call,set "var=!var!%%str:~!a!,1%%"
  9.      )
  10.     set /a b=!random!%%5+1&call :lp
  11.     set "var="
  12. )
  13. goto :eof
  14. :lp
  15. for /f "tokens=%b%" %%c in ("%code%") do echo.>!var!.%%c
复制代码
set /a b=!random!%%5+1&call :lp此句改成set /a b=!random!%%6+1&call :lp就能生成mp3类型的文件了
作者: guao_jie    时间: 2009-3-26 21:32

非常感谢,才进来不到2小时。对这个批处理很感兴趣。谢谢
作者: rat    时间: 2009-3-26 21:52

foce -> force
作者: 5810239q    时间: 2009-4-2 23:03

经常用到的一个命令,记下了
作者: 5810239q    时间: 2009-4-4 20:15

erase与del等效,这个刚刚知道
作者: Agan    时间: 2009-4-7 13:14

del和erase之间有什么区别吗?
作者: Batcher    时间: 2009-4-7 13:18     标题: 回复 18楼 的帖子

有。
del命令只需输入3个字符:d、e、l
erase命令需要输入5个字符:e、r、a、s、e
作者: leaparde    时间: 2009-4-9 13:32

原帖由 Batcher 于 2009-4-7 13:18 发表
有。
del命令只需输入3个字符:d、e、l
erase命令需要输入5个字符:e、r、a、s、e


厉害,这个回答。。。。
作者: xiaridexue28    时间: 2009-4-9 15:02

太感谢了,我现在也正在找这个呢。谢谢!!!!!!!!
作者: peterwang    时间: 2009-4-10 09:09

来学习了,谢谢分享!!@
作者: luzhanhong    时间: 2009-4-10 15:53

多谢楼主,关Del命令,可以温习啦
作者: wangxin016    时间: 2009-6-11 14:15

多举一些例子病毒的例子很形象,多谢~
作者: ynkm0871    时间: 2009-6-12 16:41

慢慢学习的啦,对批处理越来越有兴趣了,感谢并支持!
作者: momosp    时间: 2009-6-12 19:24

向楼主学习
作者: sunsnow    时间: 2009-6-12 23:12

一日一教学 一日一学习 积跬步至千里
作者: canyuexiaolang    时间: 2009-8-28 13:15

学习了,顺便问一下,这一日一教学还是N日一教学啊,等死我了
作者: yettybetty    时间: 2009-9-23 11:07

向楼主学习
作者: tangweichao    时间: 2009-10-15 22:53

学习了,很不错的,简单易学
作者: abeltan    时间: 2009-10-28 11:12

学到了不少东西,简单的命令有这么多的参数
作者: batchernew    时间: 2010-7-26 21:54     标题: 求batman的代码注释

我是新手,看不懂batman那段代码,请问谁能给出那段代码的注释啊?
作者: ljlkebi    时间: 2011-1-4 16:21

书写很认真,内容很强大!
作者: lxwlt    时间: 2011-5-5 10:41

我是新手,看不懂batman那段代码,请问谁能给出那段代码的注释啊?
batchernew 发表于 2010-7-26 21:54

我也看不懂能讲解一下不??、
作者: zaixinxiangnian    时间: 2011-8-13 20:47

del /a(指定要删除文件的属性)
/s(指定删除所有子文件夹的内容)
/q(.安静模式删除)
/f(强制删除)
del=erase
作者: 兜兜米    时间: 2011-8-26 10:31

for /l %%a in (1,1,20) do (
    for /l %%b in (1,1,9) do (
          set /a a=!random!%%36
          call,set "var=!var!%%str:~!a!,1%%"
     )
    set /a b=!random!%%5+1&call :lp
    set "var="
)
goto :eof
:lp
for /f "tokens=%b%" %%c in ("%code%") do echo.>!var!.%%c
能否解释一下这段代码的意思,特别是set "var=!var!%%str:~!a!,1%%"
作者: xslxslxsl    时间: 2011-8-26 11:17

在此学习了
作者: Batcher    时间: 2011-8-26 12:45

回复 37# 兜兜米


请到代码咨询&讨论版块发帖提问
作者: huxiaomeia    时间: 2011-10-9 21:39

嗯嗯   这些东西我喜欢   希望楼主 给些高级程序的同时 给些菜鸟学习的东西  照顾些 菜菜  。。。。。。。。。。。。。。。。。。
作者: Fantasys    时间: 2011-10-13 14:14

call,set "var=!var!%%str:~!a!,1%%"
新手啊,对这一句不太理解。
作者: andy七少    时间: 2011-10-14 16:44

温故而知新
作者: chengeng430    时间: 2012-9-15 08:30

只能删文件?
作者: hero1997    时间: 2014-12-23 11:21

最常见的命令也会有一些功能是不知道的。
作者: ylaiyic    时间: 2015-1-2 00:10

讲得非常详细,感谢楼主
作者: wrsbj    时间: 2015-1-2 14:53

非常的好,多谢楼主
作者: bakatu    时间: 2017-4-27 10:47

看完了,十分感谢
作者: dada5142    时间: 2017-7-27 16:34

今天刚开始学习~~
作者: arjo    时间: 2021-7-30 14:39

del命令能接收管道的数据么?

比如一个txt文件里面有文件名的列表,通过type命令输出,通过管道给del命令删除可以么?
作者: qixiaobin0715    时间: 2021-7-30 14:50

最简单的办法:自己试一试。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2