和附件的 .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
- )
- )
复制代码
|