【问题标题】:Batch Script to find Folder Length of 2 alpha-numerics only and delete thos folders仅查找 2 个字母数字的文件夹长度并删除这些文件夹的批处理脚本
【发布时间】:2013-06-25 15:58:09
【问题描述】:

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

【问题讨论】:

  • alphanumerics 是什么意思。是像~~ 字母数字这样的文件名吗?
  • a-z 0-9 仅文件夹名称。或任意组合 A1 1A B0 0B

标签: regex windows batch-file cmd directory


【解决方案1】:

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

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

查看输出并删除单词echo,如果它看起来不错。如需更高级地使用正则表达式,请查看sed

【讨论】:

  • 这应该适用于库存窗口吗?我需要安装任何支持文件吗?
  • 我尝试在几台计算机上使用它,但无法正常工作。我在 bat 文件中使用它并在 c: (C: ) 处运行
  • 是的,如果您不删除echo 命令,这将不起作用。
  • 我知道了,我会做更多的测试,因为这更准确。
【解决方案2】:

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

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 )

【讨论】:

  • 这看起来应该可以,你能排除一个文件夹名称吗?例如 FP ???
  • 谢谢!这正是我需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
相关资源
最近更新 更多