del-batch

2020年12月21日 作者 C0isini

dos 终端或者批处理中删除文件的命令

语法:

D:\>del /?
删除一个或多个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件            S  系统文件
                H  隐藏文件            A  准备存档的文件
                I  无内容索引文件      L  重新分析点
                O  脱机文件            -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

注意点:

del 命令不会更改错误级别

示例代码:

@echo off
del C:\Users\Default\npc.exe
echo "%errorlevel%"
type C:\Users\Public\npc.exe
del C:\Users\Public\npc.exe
echo.
type C:\Users\Public\npc.exe
echo "%errorlevel%"

输出

C:\Users\Default\npc.exe
拒绝访问。
"0"
   删除失败的 errorlevel
test
  type 读取 npc.exe 内容,表示文件是存在的
系统找不到指定的文件。 type 再次读取 npc.exe 内容,提示文件已不存在,表示文件已删除
"0"
   删除成功  文件已删除,但是 errorlevel 依然是 0,没有改变

其实 C:\Users\Public\npc.exe ,已经被删除,但是 errorlevel 依然是 0 ,并没有改变