如何从目录和子文件夹中删除所有名为 "Sample" 的文件夹?
How to remove all folders named "Sample" from directory and subfolders?
我正在寻找可以添加到我使用的批处理中的命令行。
以下是我需要能够做的事情:
假设我有一个目录:
C:\Users\username\Videos
有一个子目录
C:\Users\username\Videos\测试\样本
C:\Users\username\Videos\test2\样本
我需要使用什么命令来删除两个子目录中的示例文件夹而不是 test/test2 文件夹?
如果您知道使用 RMDIR 的方法,那会很棒,但如果不知道,我愿意接受您的想法。
怎么样:
for /f %i in ('dir /b/s/ad ^| findstr -I "\Sample$"') do rmdir %i
它执行递归目录列表和示例目录过滤器,然后获取列表并删除每个目录。如果你打算把它放在一个批处理文件中,你需要像这样每 % 加倍:
for /f %%i in ('dir /b/s/ad ^| findstr -I "\Sample$"') do rmdir %%i
命令
dir /b /s /ad "C:\Users\username\Videos\sample"
将生成要删除的文件夹列表。现在,为了处理这个列表,我们将命令包装在 for /f
命令中,该命令将对前一个命令
输出中的每一行执行目录删除命令
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims=" %%a in ('
dir /b /s /ad "C:\Users\username\Videos\sample"
') do rd /s /q "%%a"
或者,从命令行使用它
for /f "delims=" %a in ('dir /b /s /ad "C:\Users\username\Videos\sample"') do rd /s /q "%a"
在这两种情况下,for /f
将遍历 dir
命令的输出行,将该行存储在其可替换参数 %a
中并执行 [= 之后的代码17=] 子句。
for
命令的默认行为是 标记化 输入行使用空格和制表符作为分隔符将它们分开。要禁用此行为
使用 delims=
子句:没有分隔符,只有一个包含整行的标记。
我正在寻找可以添加到我使用的批处理中的命令行。
以下是我需要能够做的事情:
假设我有一个目录:
C:\Users\username\Videos
有一个子目录
C:\Users\username\Videos\测试\样本
C:\Users\username\Videos\test2\样本
我需要使用什么命令来删除两个子目录中的示例文件夹而不是 test/test2 文件夹?
如果您知道使用 RMDIR 的方法,那会很棒,但如果不知道,我愿意接受您的想法。
怎么样:
for /f %i in ('dir /b/s/ad ^| findstr -I "\Sample$"') do rmdir %i
它执行递归目录列表和示例目录过滤器,然后获取列表并删除每个目录。如果你打算把它放在一个批处理文件中,你需要像这样每 % 加倍:
for /f %%i in ('dir /b/s/ad ^| findstr -I "\Sample$"') do rmdir %%i
命令
dir /b /s /ad "C:\Users\username\Videos\sample"
将生成要删除的文件夹列表。现在,为了处理这个列表,我们将命令包装在 for /f
命令中,该命令将对前一个命令
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims=" %%a in ('
dir /b /s /ad "C:\Users\username\Videos\sample"
') do rd /s /q "%%a"
或者,从命令行使用它
for /f "delims=" %a in ('dir /b /s /ad "C:\Users\username\Videos\sample"') do rd /s /q "%a"
在这两种情况下,for /f
将遍历 dir
命令的输出行,将该行存储在其可替换参数 %a
中并执行 [= 之后的代码17=] 子句。
for
命令的默认行为是 标记化 输入行使用空格和制表符作为分隔符将它们分开。要禁用此行为
使用 delims=
子句:没有分隔符,只有一个包含整行的标记。