windows 版的 [1],递归删非空文件夹,同时打印目录树(不用 tree 命令)

  • 函数定义、传参见 [4,5]

    • :<函数名> 开始(其实是行号?),goto:eof 结束(其实只是 goto 文件尾?:eof 可能是自带的表示文件尾的行号)(exit /b 好像也可以结束,见 [9])。
    • 函数定义放在文件尾,中间用一行 goto:eof 隔开,否则好像会无脑执行一次,毕竟所谓定义好像只是行号 + goto
    • %0 函数名,%1 开始是参数,对应 linux shell 的 $0$1
    • setlocal-endlocal 域内定义的变量是局部变量,避免全局裸奔导致命名冲突
  • <NUL set /p="<MESSAGE>",输出但不换行,见 [9]
  • > nul 2>&1 屏蔽命令输出、报错
  • rmdir 会删非空目录,所以此处可以直接用,是安全的
@echo off
setlocal enabledelayedexpansion
REM clscall:clean log 0REM functions
goto:eof:clean
setlocalREM show treeREM echo path: %1, layer: %2if %2 GTR 1 (for /l %%i in (2, 1, %2) do (<nul set /p="|  "))if %2 GTR 0 (<nul set /p="|- ")echo %1/REM remove empty sub-foldersset /a layer = %2 + 1cd %1for /d %%d in (*) do (call:clean %%d %layer%)cd ..REM remove the folder IFF it's emptyREM cuz `rmdir` WON'T remove a NON-EMTPY folderrmdir %1 > nul 2>&1
endlocal
goto:eof

References

  1. shell递归遍历目录删log
  2. bat文件循环、字符串
  3. dos bat批量创建软链接
  4. 【DOS批处理】函数定义和用法
  5. bat 脚本之 使用函数
  6. dos | if
  7. dos | for
  8. FOR /D
  9. Windows batch: echo without new line

dos递归遍历目录删log相关推荐

  1. java 递归 遍历目录下的所有文件

    public class Demo{static int level;public static void main(String[] args) throws IOException {//利用递归 ...

  2. 递归 遍历目录下的所有文件

    public class Demo{static int level;public static void main(String[] args) throws IOException {//利用递归 ...

  3. linux sed 目录递归,shell递归遍历目录下的所有文件并统一改名的方法-文件更名...

    对Linux开发技术感兴趣或者是从事Linux开发技术的小伙伴是否知道如何把某个目录下的每个文件统一在名字前加上"abc",用shell实现呢?下面就随Linux培训小编来了解一下 ...

  4. linux脚本遍历目录,shell脚本递归遍历目录及子目录的例子分享

    用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名. 实例1: 复制代码 代码如下: #!/bin/sh function scandir() { local cur_d ...

  5. Linux shell递归遍历目录

    Linux shell递归遍历目录 Linux上可以通过如下shell脚本遍历指定目录: #!/bin/bashfunction list_file() {local last_dir=$(pwd)i ...

  6. python 递归遍历目录排序_python下递归遍历目录和文件

    方法一:递归调用: import os def dirlist(path, allfile): filelist =  os.listdir(path) for filename in filelis ...

  7. python递归遍历目录_Python实现递归遍历文件夹并删除文件

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹 ...

  8. VC/MFC 下 递归遍历目录下的所有子目录及文件

    在MFC下要实现文件夹的递归遍历,可用CFileFind类,依次读取文件夹下的子文件夹和文件,并判断通过判断是文件夹还是文件来决定递归遍历.递归遍历代码如下: /******************* ...

  9. shell递归遍历目录中的所有文件、文件夹

    因为需求的变化,线上资源需要批量更新,现在将遍历目录中的文件及文件夹的方法记录一下,免得忘记. 知识点 $( ls - l ) 执行命令,获取命令行结果 ${val} 使用之前的变量,等同于 $val ...

最新文章

  1. node中的流的介绍(Stream)
  2. input输入系统中是如何实现按键重复
  3. java内存分配 常量池详解
  4. python自动搜索爬取下载文件-python批量爬取下载抖音视频
  5. php能调用easyui窗口,关于jQuery EasyUI window窗口使用实例详解
  6. 极速搭建一个个人博客网站
  7. Tableau Desktop认证:为什么要关心以及如何通过
  8. Replication--查看未分发命令和预估所需时间
  9. 有关于婚姻经济学的经典对话
  10. 从上到下打印二叉树的三种题型
  11. bochs x86模拟器
  12. Template-Based 3D Model Fitting Using Dual-Domain Relaxation
  13. vue学习笔记-12-计算属性
  14. matlab中的封装引脚,lm5117封装引脚图及功能
  15. U8如何设置和调用凭证模板
  16. java 创建一个类_java创建一个类
  17. 架构设计(8)—高可用架构设计
  18. [论文评析]Density‑based weighting for imbalanced regression,Machine Learning,2021
  19. Biotin-PEG-CHO,生物素PEG醛基
  20. 李艳鹏:技术人如何修炼内功

热门文章

  1. 广研Android卡顿监控系统
  2. 解决element UI 表格el-table增加列会震动抖动的问题
  3. linux无网络下,安装gcc7.5.0
  4. 解决window Server 2008 R2环境下无法安装.NetFramwork4.6错误
  5. CocoStudio导出的LUA文件使用
  6. Java 数据库连接池C3P0,德鲁伊(Druid)的详解
  7. Java通过DBCP连接池方法实现JDBC代码案例
  8. 【LEACH协议】基于matlab蝴蝶优化算法WSN安全分簇路由设计【含Matlab源码 2567期】
  9. LPC总线之:ISA总线(X-Bus总线)、EISA总线、LPC总线
  10. 《C语言从入门到精通》学习笔记001-C语言概述