标题: [文件操作] 批处理如何实现tree目录树鼠标悬停展开、单击打开? [打印本页]
作者: QIAOXINGXING 时间: 2012-3-20 23:15 标题: 批处理如何实现tree目录树鼠标悬停展开、单击打开?
和附件的 .txt 放在同一文件夹,相当于把 tree 命令的目录树做成了能自动展开的菜单。
但是有一个巨大的问题,鼠标移开就会收回,很蛋疼。。。。- @echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"
- copy 模板.txt 使用.html
- for /f "skip=3 delims=" %%a in ('tree') do (
- set "str=%%a"
- set "str=!str:├= !"
- set "str=!str:─= !"
- set "str=!str:└= !"
- set "str=!str:│= !"
- if not "!str: =!"=="" (
- rem 循环的第一、二次特殊处理
- if not defined qstr (set "qstr=!str!" & call :1 & set "qn=!n!"
- ) else (
-
- if defined hstr set "qstr=!hstr!"
- set "hstr=!str!" & call :1 & set "hn=!n!"
- :2
- rem 截取文件名、设置路径
- set /a "zf=4*qn"
- for %%i in (!zf!) do (set "cqstr=!qstr:~%%i!")
- set "p!qn!=!cqstr!"
- set "pat="
- for /l %%i in (1 1 !qn!) do (set "pat=!pat!\!p%%i!")
- set "pat=!pat:~1!"
- set /a "cn=qn-hn"
- rem 判断、输出
- (if not !qn! lss !hn! (
- echo ^<li^>^<a href="%~dp0!pat!"^>!cqstr!^</a^>^</li^>
- for /l %%a in (1 1 !cn!) do (echo ^</ul^>&echo ^</li^>)
- ) else (
- echo ^<li^>^<a href="%~dp0!pat!"^>!cqstr!^</a^> & echo ^<ul^>
- ))>>使用.html
- set "qn=!hn!"
- )
-
- )
- )
- rem 输出最后一行
- if not defined flag set "flag=1" & set "qstr=!hstr!" & set "hn=1" & goto :2
- (echo ^</ul^>&echo ^</div^>&echo ^</body^>&echo ^</html^> )>>使用.html
-
- pause
- :1
- rem 获取级数
- for /l %%i in (0 1 33) do (
- if not "!str:~%%i,4!"==" " (
- set /a "n=(%%i+3)/4"
- goto :eof
- )
- )
复制代码
作者: Hello123World 时间: 2012-4-12 14:43
1.单击没有打开
2.只显示目录,不显示目录中的文件
作者: QIAOXINGXING 时间: 2012-4-12 23:39
回复 2# Hello123World
1.刚在同学win7的机子上试了一下,也是可以的。您的具体为什么不行,就不知道了。
2.把 for里的 ‘tree’ 改成 ‘tree /f’ 可以显示文件,但是单击了不是打开,而是弹出另存为的对话框。
总得来说,这东西没什么用。。。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |