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

[文件操作] 批处理如何实现tree目录树鼠标悬停展开、单击打开?

和附件的 .txt 放在同一文件夹,相当于把 tree 命令的目录树做成了能自动展开的菜单。
但是有一个巨大的问题,鼠标移开就会收回,很蛋疼。。。。
  1. @echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"
  2. copy  模板.txt 使用.html
  3. for /f "skip=3 delims=" %%a in ('tree') do (
  4.   set "str=%%a"
  5.   set "str=!str:├=  !"
  6.   set "str=!str:─=  !"
  7.   set "str=!str:└=  !"
  8.   set "str=!str:│=  !"
  9.   if not "!str: =!"=="" (
  10.   rem 循环的第一、二次特殊处理
  11.   if not defined qstr (set "qstr=!str!" & call :1 & set "qn=!n!"
  12.   ) else (
  13.     if defined hstr set "qstr=!hstr!"
  14.     set "hstr=!str!" & call :1 & set "hn=!n!"
  15.   :2
  16.     rem 截取文件名、设置路径
  17.     set /a "zf=4*qn"
  18.     for  %%i in (!zf!) do (set "cqstr=!qstr:~%%i!")
  19.     set "p!qn!=!cqstr!"
  20.     set "pat="
  21.     for /l %%i in (1 1 !qn!) do (set "pat=!pat!\!p%%i!")
  22.     set "pat=!pat:~1!"
  23.     set /a "cn=qn-hn"
  24.     rem 判断、输出
  25.     (if not !qn! lss !hn! (
  26.       echo ^<li^>^<a href="%~dp0!pat!"^>!cqstr!^</a^>^</li^>
  27.       for /l %%a in (1 1 !cn!) do (echo ^</ul^>&echo ^</li^>)
  28.     ) else (
  29.     echo ^<li^>^<a href="%~dp0!pat!"^>!cqstr!^</a^> & echo ^<ul^>
  30.     ))>>使用.html
  31.     set "qn=!hn!"
  32.   )
  33.   )
  34. )
  35. rem 输出最后一行
  36. if not defined flag set "flag=1" & set "qstr=!hstr!" & set "hn=1" & goto :2
  37. (echo ^</ul^>&echo ^</div^>&echo ^</body^>&echo ^</html^> )>>使用.html
  38. pause
  39. :1
  40. rem 获取级数
  41. for /l  %%i in (0  1 33) do (
  42.   if not "!str:~%%i,4!"=="    "  (
  43.     set /a "n=(%%i+3)/4"
  44.     goto :eof
  45.   )
  46. )
复制代码

回复 2# Hello123World


    1.刚在同学win7的机子上试了一下,也是可以的。您的具体为什么不行,就不知道了。
   2.把 for里的 ‘tree’ 改成  ‘tree /f’ 可以显示文件,但是单击了不是打开,而是弹出另存为的对话框。
   总得来说,这东西没什么用。。。。

TOP

1.单击没有打开
2.只显示目录,不显示目录中的文件

TOP

返回列表