批处理脚本只能找到2个字母数字的文件夹长度并删除这些文件夹

时间:2013-06-25 15:58:10

标签: regex windows batch-file cmd directory

我需要一个批处理脚本,它将在一个文件夹或根目录中搜索,而不是递归搜索文件夹名称只有两个字母或数字的文件夹。实施例A1 B0 E2 22 52。我有一个程序,可以在C盘上转储文件夹,我现在在许多计算机上有数百个文件夹。我想删除这些文件夹。我没有任何文件夹,只需要2个字母。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

这将仅删除名称中包含两个字母或数字的文件夹:

for %%i in ('dir /b /ad ?? ^| findstr /r "^[a-z0-9][a-z0-9]$"') do echo rd /s /q "%%~i"

查看输出并删除单词echo,如果它看起来不错。有关更高级别使用正则表达式的信息,请查看sed

答案 1 :(得分:0)

这将删除所有包含两个字符或更少的空文件夹:

for / f %% i in('dir / b / ad ??')do rd %% i

如果您还想要删除非空文件夹:

for /f %%i in ('dir /b /ad ??') do rd %%i /s /q

如果您不是在批处理文件中使用它而是作为单个命令使用它,请将每个%%i替换为%i

编辑(排除文件夹):

for /f %%i in ('dir /b /ad ??') do ( if "%%i" neq "FP" rd %%i /s /q )