Board logo

标题: [代码合集] 有没办法用一批处理来查看文件夹层数? [打印本页]

作者: xzwcn    时间: 2012-6-3 22:33     标题: 有没办法用一批处理来查看文件夹层数?

如一下A文件夹晨有数个子文件夹,而每个子文件夹中又各有许多的子子文件夹的,


有没有快捷的方法知道这个A文件夹中哪个子文件夹中包含了最深层的文件夹呢?

有批处理能不能做到呢?如果用其它其它工具,又该如何?我一在只知道一个个地打开看或者用tree列目录树。。。或右键属性,看包含了多少个文件夹。


提出这个问题的初衷是:

115网盘普通用户只能够上传5层文件夹,而我有一些文件夹中包含了过多的子文件夹,我是想在上传之前先检查一遍持哪个文件夹中的子文件夹超了。暂没发现比较快速的方法。。。
作者: powerbat    时间: 2012-6-3 23:20

针对标题中的问题批处理能做到但不够快捷,而针对你的初衷却有快捷方法:
列出超过5层的文件夹
  1. @echo off
  2. set "dir=G:\bt\upload"
  3. dir /ad/s/b "%dir%" | findstr /r /c:"%dir:\=\\%\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*"
  4. pause
复制代码

作者: xzwcn    时间: 2012-6-4 08:25

回复 2# powerbat


    能改成自动对当前目录进行分析吗?
作者: gawk    时间: 2012-6-4 08:49

回复 3# xzwcn
  1. @echo off
  2. set "dir=%~dp0"
  3. dir /ad/s/b "%dir%" | findstr /r /c:"%dir:\=\\%\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*"
  4. pause
复制代码

作者: xzwcn    时间: 2012-6-4 09:29

回复 4# gawk


    这个未能正常获取超过5层的路径哦
作者: gawk    时间: 2012-6-4 09:47

回复 5# xzwcn


    你把@echo off删掉,看看执行过程就明白了。
作者: 喃喃努努    时间: 2012-6-4 10:31

这么神奇。学习一下。
作者: yangfengoo    时间: 2012-6-4 10:52

本帖最后由 yangfengoo 于 2012-6-4 22:46 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%a in ('dir /s/b /ad') do (
  3.    set x=%%a
  4.    set x=!x:%cd%=!
  5.    for /f "delims=\ tokens=5" %%b in ("!x!") do if not "%%b"=="" echo %%a
  6.    )
  7. pause
复制代码

作者: xzwcn    时间: 2012-6-4 22:23

回复 6# gawk


    不好意思。。。还是不会使用
作者: xzwcn    时间: 2012-6-4 22:25

回复 8# yangfengoo


    请问这个是怎么使用的呢?有空请耐心回复一下哦。
作者: yangfengoo    时间: 2012-6-4 22:42

本帖最后由 yangfengoo 于 2012-6-4 22:48 编辑

回复 10# xzwcn
在当前目录下运行,会列出以当前目录为参照超过5层的所有目录

由于疏忽,将测试代码的f.txt没改动。已修正,如果目录较多处理时间较长,请耐心等待
作者: gawk    时间: 2012-6-5 06:51

回复 9# xzwcn


    跟2楼的执行过程对比一下,就会发现set赋值的时候多出来一个/




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2