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

[代码合集] 有没办法用一批处理来查看文件夹层数?

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


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

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


提出这个问题的初衷是:

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

回复 9# xzwcn


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

TOP

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

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

由于疏忽,将测试代码的f.txt没改动。已修正,如果目录较多处理时间较长,请耐心等待

TOP

回复 8# yangfengoo


    请问这个是怎么使用的呢?有空请耐心回复一下哦。

TOP

回复 6# gawk


    不好意思。。。还是不会使用

TOP

本帖最后由 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
复制代码

TOP

这么神奇。学习一下。

TOP

回复 5# xzwcn


    你把@echo off删掉,看看执行过程就明白了。

TOP

回复 4# gawk


    这个未能正常获取超过5层的路径哦

TOP

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

TOP

回复 2# powerbat


    能改成自动对当前目录进行分析吗?

TOP

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

TOP

返回列表