使用批处理查找某个文件夹及其子文件夹(递归地)中存在的空文件夹

缘起:网上下载了一份源代码,但是由于其中的存在某些空文件夹,而且文件夹特别多,且目录也比较深,所以写一个批处理,用来查找出这份源代码中的空文件夹,使其可以在github上提交

 1 @echo off
 2 cls
 3 rem --- main program ---
 4 set baseDir=C:\Users\Desktop\src\src\com\sourcecode 5
 6 echo --- callBefore ---
 7 call :subPro
 8 echo --- callAfter ---
 9
10 goto mainEnd
11 rem --- main program ---
12
13
14 rem sub program
15 :subPro
16 call :subPath %baseDir%
17 goto :eof
18
19 rem sub 拼接新的路径
20 rem %1 当前查找路径
21 :subPath
22 rem 判断当前文件夹下面是否有文件存在
23 set fileCount=0
24 for /F "delims=" %%c in (‘dir /B %1‘) do set /a fileCount+=1
25 if %fileCount% == 0 echo %1
26
27 rem 递归调用
28 for /F "delims=" %%d in (‘dir /B/A:d %1‘) do call :subPath %1\%%d
29
30 goto :eof
31
32
33 :subDeep
34 set fileName=%1
35 echo %fileName%
36
37 rem program end point, SHOULDN‘T WRITE ANY CODE IN HERE
38 :mainEnd

上面批处理的第25行将空文件夹的路径打印出来,如果要向改文件夹中复制文件,则使用下面的代码替换25行即可

1 set emptyFile=C:\Users\blaze\Desktop\bat\.gitkeep
2 if %fileCount% == 0 copy "%emptyFile%" %1
时间: 2024-10-12 21:14:28

使用批处理查找某个文件夹及其子文件夹(递归地)中存在的空文件夹的相关文章

shell 批量压缩指定文件夹及子文件夹内图片

shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理. 代码例如以下: #!/bin/bash # 查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理 # Config folderPath='/home/fdipzone/photo' # 图片文件夹路径 maxSize='1M' # 图片尺寸同意值 max

JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件

package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要显示文件目录的层级 * 注:运用了递归的算法. */ public class FileDemo3 { public static void main(String[] args) { File dir=new File("F:\\黑马学习日程\\"); //File dir=new Fi

nodejs 文件系统(fs) 删除文件夹 及 子文件夹下的所有内容

http://blog.163.com/hule_sky/blog/static/2091622452015112821829773/ node 文件系统fs 为我们提供了一些方法 进行文件和文件夹的读写删除等操作 下边将介绍删除文件夹及子文件夹下的所有内容的相关命令(均含有同步和异步方法) 1. fs.stat && fs.statSync 提供了访问文件的属性信息 2. fs.readdir && fs.readdirSync 提供读取文件目录信息 3. fs.unli

java实现文件夹(包括其中的子文件夹、子文件)的复制——递归

这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: 1 package com.simon.myfinal; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.InputStream; 7 8 /** 9 * Crea

(转) Ubuntu 更改文件夹及子文件夹权限

Linux系统下如何修改文档及文件夹(含子文件夹)权限,我们来看一下. 一 介绍: 可以使用命令chmod来为文件或目录赋予权限.Linux/Unix 的档案存取权限分为三级 : 档案拥有者.群组.其他.利用 chmod 可以藉以控制档案如何被他人所存取 二 详解 1 此命令有两种使用方法,一种是chmod后加数字,后接文件名 chmod abc file 其中a,b,c各为一个数字,分别表示User.Group.及Other的权限. r=4,w=2,x=1 若要rwx属性则4+2+1=7: 若

获取文件夹下所有文件(包括子文件)放在list<File>中

public static List<File> getAllFileList(File rootFile) { return getAllFileList(rootFile.getAbsolutePath(), null); } /** * 获取文件夹下所有文件(包括子文件) * * @param filePath * @param fileList * @return */ public static List<File> getAllFileList(String fileP

列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤

/** * 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤 * * @param path */ public static void list(File path) { if (!path.exists()) { System.out.println("文件名称不存在!"); } else { if (path.isFile()) { if (path.getName().toLowerCase().endsWith(".pdf") || path.get

Linux C 读取文件夹下所有文件(包括子文件夹)的文件名(转)

Linux C  下面读取文件夹要用到结构体struct dirent,在头#include <dirent.h>中,如下: 1 #include <dirent.h> 2 struct dirent 3 { 4 long d_ino; /* inode number 索引节点号 */ 5 off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ 6 unsigned short d_reclen; /* length of this d

获取文件夹以及子文件夹里面的所有文件

1. 没有后缀名的限制: string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 2. 有后缀名: string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.bmp"); 3. 获取文件夹以及子文件夹里面的所有文件:  设置SearchOption.AllDirectories 属性 string[] filePaths = Direct