在 WindowsCMD 上递归删除文件或文件夹

如何从命令行递归删除 Windows 上的文件或文件夹?

我已经找到了这个解决方案,其中我们在命令行上驱动路径并运行这个命令。

我给出了一个带有. svn 文件扩展名文件夹的示例:

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

你可以在 bat脚本中使用:

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

现在,只需将 c:\folder a更改为文件夹的位置。只有当文件夹名包含空格时才需要引号。

RMDIR path_to_folder /S

例如 RMDIR "C:\tmp" /S

注意,如果您真的要删除“ C: tmp”文件夹,系统会提示您。将它与/Q 开关组合起来,就可以悄悄地删除文件夹(例如。RMDIR "C:\tmp" /S /Q)

请执行以下步骤:

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

    del /S *.svn
    

其他答案对我没用,但这个有用:

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

/q 禁用 Yes/No 提示

/s 意味着从所有子目录中删除文件。

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

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

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

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

同样的方法也可以应用于删除目录,只需将 Del改为 Rmdir即可。

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

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

你也可以这样做:

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

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

使用 WindowsRmdir命令

也就是说,临时工

我使用下面这些图片已经有好几年了,完美无瑕。

使用以下选项查看其他选项: < em > forfiles/?

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

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

递归删除窗口 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"

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

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

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

这里有一个不同寻常的方法:

假设我们要清除 d: temp dir

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty
dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"

这招对我很管用

Del/s/q“ dir _ name”

Windows 命令处理器 cmd.exe有两个用于删除文件和文件夹的内部命令:

  1. 命令 DEL是针对 文件删除的,在命令提示符的 help deldel /?窗口中运行时会有使用帮助输出。
  2. 命令 RMDIR或者更短的名字 RD是针对 目录移除的,它在命令提示符窗口中运行时提供使用帮助输出,无论是 help rmdirrmdir /?help rd还是 rd /?

删除整个文件夹树中的所有 * . svn 文件

可以在命令提示符窗口或 Windows 批处理文件中使用以下命令来删除所有的 文件,其中长或短的8.3文件名与目录 %USERPROFILE%\Projects或其任何子目录中的通配符模式 *.svn匹配:

del /A /F /Q /S "%USERPROFILE%\Projects\*.svn" >nul 2>&1

使用选项 /A来匹配与文件属性无关的所有文件,替换了隐式默认的 /A-H来忽略隐藏文件。因此,即使是具有隐藏属性的文件也会因为使用选项 /A而被该命令删除。如果不使用选项 /A,则忽略通配符模式 *.svn与隐藏属性集匹配的文件。

选项 /F强制删除文件扩展名为 .svn且设置了只读属性的文件。如果 *.svn文件设置了只读属性,并且在运行命令 DEL时没有使用选项 /F,则会输出错误消息 Access is denied.

安静选项 /Q阻止用户确认提示 Are you sure (Y/N)?

选项 /S不仅导致在指定的目录中搜索,而且导致在其所有子目录中搜索,包括那些设置了隐藏属性的子目录,即使不使用选项 /A搜索通配符模式 *.svn匹配长或短8.3名称的文件。

两个 改变方向 >nul2>&1导致重定向删除文件输出列表以处理 STDOUT(标准输出)和错误消息输出以处理 STDERR(标准错误)到设备 NUL以抑制每个输出。

在使用这个命令时,也会删除与通配符模式 *.svn匹配的硬链接和符号链接,但是如果文件名没有以 .svn结尾或者位于不同的目录树中,则不会删除所链接的文件。

进程(程序/应用程序)当前打开的通配符模式 *.svn匹配的文件,使用共享访问权限拒绝所有其他进程删除该文件,只要该进程打开该文件,该命令就不会删除该文件。文件系统权限也可能导致此命令不删除文件。

删除整个文件夹树中的所有 * . svn 文件夹

可以在一个命令提示符窗口中使用以下命令来删除所有在长或短8.3文件夹中匹配的 文件夹文件名通配符模式 %USERPROFILE%\Projects目录及其所有子目录中的通配符模式:

for /F "delims=" %I in ('dir "%USERPROFILE%\Projects\*.svn" /AD /B /S 2^>nul') do @rd /Q /S "%I" 2>nul

在顶部包含 @echo off的批处理文件中使用的相同命令行是:

for /F "delims=" %%I in ('dir "%USERPROFILE%\Projects\*.svn" /AD /B /S 2^>nul') do rd /Q /S "%%I" 2>nul

在后台执行更多的 cmd.exe,选项 /c和在 '之间指定的命令行作为附加参数,在后台运行 Windows Command Processor 内部命令 DIR进行搜索

  • 在指定的目录 %USERPROFILE%\Projects
  • 并在其所有子目录,因为选项 /S
  • 因为使用选项 /AD,其中还包括连接和符号目录链接
  • 匹配通配符模式 *.svn

根据这些条件匹配的文件系统条目(= 目录名)是以裸格式输出的,因为选项 /B带有完整路径,因为选项 /S处理后台命令进程的 STDOUT而不包围 ",即使在包含空格或这些字符之一的完整目录名 &()[]{}^=;!'+,`~上也是如此。如果没有找到任何匹配这些条件的名称,DIR输出的错误消息将被重定向到设备 NUL以抑制它。

重定向操作符 >必须在 为了命令行上用插入字符 ^转义,当 Windows Command Processor 在执行命令 为了之前解析这个命令行时,它将被解释为文字字符。 为了执行嵌入的 dir命令行时,使用一个单独的命令进程在后台启动。

处理批处理文件的 cmd.exe捕获目录名及其处理 STDOUT的完整路径的输出列表,并在启动 cmd.exe关闭自身后由 为了处理。

适用于/F选项 delims=定义了一个空的字符串分隔符列表,这导致每个完整的目录名被一个接一个地分配给指定的循环变量 I

由于选项 /Q,执行命令 RD以悄悄地删除包含所有文件和所有子目录的目录。

在使用此命令时,也会删除与通配符模式 *.svn匹配的连接(软链接)和符号目录链接,但不会删除与目录名不以 .svn结尾或位于不同目录树中的目录链接。

与通配符模式 *.svn匹配的目录,其中一个文件当前由进程(程序/应用程序)打开,使用共享访问权限拒绝所有其他进程删除该文件,只要被这个进程打开不被这个命令删除,当然也没有目录以上的目录包含文件,不能被删除的时刻。文件系统权限也可能导致此命令不删除目录。默认情况下,Windows 也会防止删除任何运行进程的当前工作目录目录。

关于删除文件和文件夹的其他有用信息

在上面的命令中,目录路径 %USERPROFILE%\Projects\可以被完全删除或者由 .\替换,以删除在执行命令的 Windows Command Processor 进程的 工作目录中与通配符模式 *.svn匹配的文件和文件夹。

目录路径 %USERPROFILE%\Projects\可以由 %~dp0替换,使用上面的命令行在一个批处理文件中删除与 批处理文件的目录中的通配符模式 *.svn匹配的文件和文件夹,这个批处理文件的执行与哪个目录无关,而这个目录是执行批处理文件的工作目录。

目录路径 %USERPROFILE%\Projects\也可以替换为相对路径。有关相对路径的详细信息,请阅读有关 命名文件、路径和命名空间的 Microsoft 文档。

为了理解所使用的命令及其工作原理,请打开一个 命令提示符窗口,在那里执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • del /?
  • dir /?
  • for /?
  • rd /?

运行 mklink /?获取关于如何创建 MKLink很好地解释的文件和目录链接的帮助。

参见:

dir -Recurse *.[extension] |del