[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] [批处理命令一日一教学](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 的缩写形式
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

还有,del和erase等价。

TOP

呵呵 进来学习了。 多谢

TOP

学习了,没想到del命令还有这么多学问,谢谢楼主分享·~~~

TOP

努力学习中~~~~~~~~
1

评分人数

TOP

还有....delete 跟del .......

TOP

[email]340458053@QQ.COM[/email],这个是我的邮箱!希望有学习资料的可以给我点

TOP

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

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

[ 本帖最后由 523066680 于 2009-1-28 17:26 编辑 ]

TOP

辛苦楼主了,谢谢分享

TOP

学习中~~~~~~~

TOP

跟两段代码,加深理解,同时突出下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\*.*
复制代码
***共同提高***

TOP

学习完毕,del是delete的缩写,其与erase等效。
活到老,学到老;终身学习!!

TOP

这段代码有误

  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类型的文件了
1

评分人数

TOP

非常感谢,才进来不到2小时。对这个批处理很感兴趣。谢谢

TOP

foce -> force
1

评分人数

    • namejm: 感谢指出笔误,已更正。PB + 2

TOP

返回列表