在Windows CMD上递归删除文件或文件夹

时间:2012-10-05 14:51:25

标签: windows cmd delete-file

如何从命令行以递归方式删除文件或文件夹?

我找到了这个解决方案,我们在命令行上运行路径并运行此命令。

我举了一个.svn文件扩展名文件夹的例子:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")

14 个答案:

答案 0 :(得分:108)

请执行以下步骤:

  1. 打开命令提示符
  2. 将目录更改为所需的路径
  3. 提供以下命令

    del /S *.svn
    

答案 1 :(得分:96)

其他答案对我没有用,但确实如此:

del /s /q *.svn
rmdir /s /q *.svn

/ q 禁用是/否提示

/ s 表示从所有子目录中删除文件。

答案 2 :(得分:31)

您可以在bat脚本中使用它:

rd /s /q "c:\folder a"

现在,只需将c:\folder a更改为您文件夹的位置即可。仅当文件夹名称包含空格时才需要报价。

答案 3 :(得分:17)

RMDIR path_to_folder /S

离。 RMDIR "C:\tmp" /S

请注意,如果您确实要删除“C:\ tmp”文件夹,系统会提示您。将它与/ Q开关结合将以静默方式删除文件夹(例如RMDIR "C:\tmp" /S /Q

答案 4 :(得分:8)

对于文件删除,我编写了以下简单的批处理文件,该文件以递归方式删除了所有.pdf:

del /s /q "\\ad1pfrtg001\AppDev\ResultLogs\*.pdf"
del /s /q "\\ad1pfrtg001\Project\AppData\*.pdf"

即使是本地目录,我们也可以将其用作:

del /s /q "C:\Project\*.pdf"

同样可以应用于目录删除,我们只需要用 rmdir 更改 del

答案 5 :(得分:4)

如果要以递归方式删除特定扩展名,请使用以下命令:

For /R "C:\Users\Desktop\saleh" %G IN (*.ppt) do del "%G"

答案 6 :(得分:3)

使用本机命令完全擦除文件夹并获取已完成操作的日志。

这是一种不寻常的方式:

假设我们要清除d:\ temp dir

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty

答案 7 :(得分:2)

你也可以这样做:

del /s /p *.{your extension here}

/p会提示您找到每个找到的文件,如果您对删除不应该删除的内容感到紧张。

答案 8 :(得分:1)

在博客文章 How Can I Use Windows PowerShell to Delete All the .TMP Files on a Drive? 之后,您可以使用类似的内容删除所有.tmp,例如从PowerShell中的文件夹和所有子文件夹中删除:

get-childitem [your path/ or leave empty for current path] -include
*.tmp -recurse | foreach ($_) {remove-item $_.fullname}

答案 9 :(得分:1)

使用Windows rmdir 命令

rmdir / S / Q C:\ Temp

  

我也正在使用下面的这些工具,并且无懈可击。

     

通过以下方式查看其他选项: forfiles /?

     

递归删除Windows文件夹中的SQM /遥测

forfiles /p %SYSTEMROOT%\system32\LogFiles /s /m *.* /d -1 /c "cmd /c del @file"
     

以递归方式删除Windows TMP文件

forfiles /p %SYSTEMROOT%\Temp /s /m *.* /d -1 /c "cmd /c del @file"
     

递归删除用户TEMP文件和文件夹

forfiles /p %TMP% /s /m *.* /d -1 /c "cmd /c del @file"

答案 10 :(得分:0)

对于隐藏文件,我必须使用以下内容:

DEL /S /Q /A:H Thumbs.db

答案 11 :(得分:0)

dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"

答案 12 :(得分:0)

它对我有用

del /s /q "dir_name"

答案 13 :(得分:-1)

删除具有指定名称的文件夹以及当前位置的内容:

ls -Recurse <dirname> | del -Force -Recurse -WhatIf

或更短:

ls -r <dirname> | del -Force -r -what

并省略最后的-WhatIf来进行实际的删除。