[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
windows自带的tree若采用 tree /a 参数输出格式,可确保每行中'树杈'字符的位序一致。
基于此,用纯P代码过滤其输出结果,可以实现指定深度的目录树结构显示。试试如下代码》
  1. @echo off
  2. set "dirF=" &set/p "dirF=拖入一个目录:"
  3. if not defined dirF exit/b
  4. set "n=" &set/p "n=指定输出目录树的深度(层级):"
  5. if not defined n exit/b
  6. set "dirF=%dirF:"=%"
  7. tree /a "%dirF%">tree.0
  8. set/a "d=4,an=(n-1)*d"
  9. setlocal enabledelayedexpansion
  10. echo,%dirF%
  11. for /f "skip=2 delims=" %%s in (tree.0) do (
  12.     set "t=%%s" &set "tn=!t:~%an%,1!"
  13.     if "!tn!" equ "+" (echo,%%s)
  14.     if "!tn!" equ "\" (echo,%%s)
  15.     if "!tn!" neq "+" if "!tn!" neq "\" (
  16.         (call :checkAllHad "-" "!t:~,%an%!" %an% allHad)
  17.         if !allHad! equ 1 (echo,%%s)
  18.     )
  19. )
  20. (del/q tree.0)&endlocal&pause&exit/b
  21. ::——————
  22. :checkAllHad //%1=字符 %2=字符串 %3=字符串长度 %4=返回值变量名
  23. set "str=%~2" &set/a "m=%~3-1"
  24. for /L %%k in (0,1,!m!) do (
  25.     if "!str:~%%k,1!" equ "%~1" (set "%~4=1" &exit/b)
  26. )
  27. set "%~4=0"
  28. exit/b
复制代码
1

评分人数

TOP

返回列表