[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何根据子文件夹名字包含的年代删除文件夹?

有这样一大堆文件夹结构,例如

abcde
   |-----abcd2000
             |---------0003
             |----------0004
                ........
   |------abcd2001
             |---------0006
             |----------0002
                ........
  |------abcd2002
             |---------0005
             |----------0002
                ........
cdefe
   |-----cdefe2000
             |---------0003
             |----------0004
                ........
   |------cdefe2001
             |---------0006
             |----------0002
                ........
  |------cdefe2002
             |---------0005
             |----------0002
                ........

现在想把第二层目录里按照年代删除,比如只删除abcd2000,abcd2001,cdefe2000,cdefe2001这样的包含2000,2001字段目录以及它下层目录,该怎么做?

本帖最后由 flyinnet9 于 2015-9-8 17:07 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::设置一级文件夹
  4. set folder=D:\abcde
  5. for /f "delims=" %%a in ('dir /ad /b %folder%') do (
  6.   set str=%%a
  7.   if "!str:~-4!"=="2000" rd %folder%\!str! /s /q
  8.   if "!str:~-4!"=="2001" rd %folder%\!str! /s /q
  9. )
复制代码

TOP

返回列表