我正在尝试删除一个大目录。我运行删除 (del /f node_modules),它似乎有效,但目录仍然存在... (当我尝试从文件资源管理器中删除它时,它通常会给我一些提示“您需要管理员权限”或“无法删除,因为文件正在使用中”,或者它需要很长时间。)
我的问题是:是什么原因导致 del 命令看起来有效,但实际上不起作用?我希望有一些输出表明目录未被删除。
答案1
如果我没有适当的权限,cmd 不会抛出访问被拒绝或其他什么的吗?
这不是del
设计的工作方式。如果文件是删除后,del
系统会通知您。如果没有文件被删除,系统将del
保持沉默或显示错误消息(例如“访问被拒绝。”)。
通常,如果命令扩展被禁用,DEL 将显示已删除的文件列表;相反,它将显示无法找到的任何文件的列表。
来源Del - 删除文件 - Windows CMD - SS64.com
如果没有删除文件并且您没有适当的权限来删除它们,则会显示一条错误消息:
F:\test\foo>del C:\Windows\notepad.exe
C:\Windows\notepad.exe
Access is denied.
我希望有一些输出表明目录没有被删除。
如果您使用del
目录名,它将删除文件在目录中. 指定的目录是不是已删除。
如果给出的是文件夹名称而不是文件,则文件夹中的所有文件都将被删除,但是文件夹本身不会被删除。
来源Del - 删除文件 - Windows CMD - SS64.com
删除两个目录和文件和子目录使用rd
(的别名rmdir
):
移除(或删除)目录。
句法
RD pathname RD /S pathname RD /S /Q pathname
/S
:除了文件夹本身,还删除所有文件和子文件夹。使用此功能可删除整个文件夹树。
答案2
del
将删除所有内容,但(即使使用/f
或/s
)它永远不会删除目录本身;这就是它的写法。
改用rmdir /s
:
rd/s/q node_modules
答案3
我使用的是 Microsoft Windows [版本 10.0.20348.2340],“DEL /S”命令似乎不再起作用。运行
del /s *.dll
dir /s *.dll
许多 DLL 文件仍然残留在子目录中。
似乎是最近才出现的一个错误。