标题: [代码合集] 有没办法用一批处理来查看文件夹层数? [打印本页]
作者: xzwcn 时间: 2012-6-3 22:33 标题: 有没办法用一批处理来查看文件夹层数?
如一下A文件夹晨有数个子文件夹,而每个子文件夹中又各有许多的子子文件夹的,
有没有快捷的方法知道这个A文件夹中哪个子文件夹中包含了最深层的文件夹呢?
有批处理能不能做到呢?如果用其它其它工具,又该如何?我一在只知道一个个地打开看或者用tree列目录树。。。或右键属性,看包含了多少个文件夹。
提出这个问题的初衷是:
115网盘普通用户只能够上传5层文件夹,而我有一些文件夹中包含了过多的子文件夹,我是想在上传之前先检查一遍持哪个文件夹中的子文件夹超了。暂没发现比较快速的方法。。。
作者: powerbat 时间: 2012-6-3 23:20
针对标题中的问题批处理能做到但不够快捷,而针对你的初衷却有快捷方法:
列出超过5层的文件夹- @echo off
- set "dir=G:\bt\upload"
- dir /ad/s/b "%dir%" | findstr /r /c:"%dir:\=\\%\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*"
- pause
复制代码
作者: xzwcn 时间: 2012-6-4 08:25
回复 2# powerbat
能改成自动对当前目录进行分析吗?
作者: gawk 时间: 2012-6-4 08:49
回复 3# xzwcn - @echo off
- set "dir=%~dp0"
- dir /ad/s/b "%dir%" | findstr /r /c:"%dir:\=\\%\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*"
- 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 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%a in ('dir /s/b /ad') do (
- set x=%%a
- set x=!x:%cd%=!
- for /f "delims=\ tokens=5" %%b in ("!x!") do if not "%%b"=="" echo %%a
- )
- 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 |