Board logo

标题: [文件管理] 批处理智能菜单 [打印本页]

作者: cjiabing    时间: 2011-6-25 18:56     标题: 批处理智能菜单

本帖最后由 cjiabing 于 2011-7-30 09:29 编辑

无聊,再发一个。
修改了一下,支持打开网址,HTTP类的。
1、放到任何目录下,生成当前目录下的文件菜单。默认菜单【M0】
2、用“  set PTxt="D:\123.txt"  ”指定文本路径,文本中包含文件完全路径列表,可据此生成菜单。切换【M1】
3、将网址(HTTP类)写入文本,可以生成网址列表菜单。
生成菜单的意思是,根据提供的内容生成一个可提供选择和执行的菜单项。不必另外写代码支持,可用此智能菜单工具直接生成,有点万能。

  1. ::摘自《BatMPlayer 2011 Beta V3.28.5.15》
  2. @echo off&setlocal enabledelayedexpansion&title 智能菜单 V1.1 &::by cjiabing&from http://hi.baidu.com/cjiabing&from http://www.bathome.net
  3. ::智能自动生成菜单,输入序号执行对应程序。可以指定目录生成,也可以指定文本生成,亦可执行HTTP网址。
  4. ::指定文本请使用“ set PTxt="D:\123.txt" ”的形式设定路径,再使用【M1】打开。
  5. ::文本只需文件路径列表即可,可用“ dir /b /s ”生成。
  6. set PTxt="D:\123.txt"
  7. ::set PTxt="%~1"
  8. :MenuAI
  9. cls
  10. echo;
  11. echo;
  12. echo;                                智能快捷菜单
  13. echo; —————————————————————————————————————
  14. if defined PTxt if /i "!input!"=="M1" (
  15.     if not "%PTxt%"==""  if exist !PTxt! for /f "tokens=1,* delims=:" %%a in ('findstr /n .* !PTxt!') do if not "%%c"=="" echo;    【 %%a 】【 %%~nb 】:%%~b
  16.     echo;
  17.     echo;    【序号】【名称】【路径】【M0】:%PTxt%
  18. ) else (
  19.     for /f "tokens=1,* delims=:" %%a in ('dir /b /a:-d-h-s  *.*^|findstr /n .*') do echo;         【 %%a 】%%b
  20.     echo;
  21.     echo;         【序号】【名称】【路径】【M1】:%cd%
  22. )
  23. echo; —————————————————————————————————————
  24. echo;    [自动生成菜单,输入序号执行对应程序。切换:默认【M0】文本【M1】]
  25. echo;
  26. set /p input=    请输入:
  27. if "!input!"=="" goto MenuAI
  28. if /i "!input!"=="M0" goto MenuAI
  29. if /i "!input!"=="M1" set mm=1&goto MenuAI
  30. if !mm!==1 (
  31.     if exist %PTxt% for /f "tokens=1,* delims=:=" %%a in ('findstr /n .* %PTxt%') do  if /i %%a==!input! if exist "%%~b" (start "" "%%~b")  else (set http=&set "http=%%~b"&if /i "!http:~0,4!"=="http" start "" iexplore.exe "!%%~b!")
  32.     set mm=0
  33. ) else (
  34.     for /f "tokens=1,* delims=:" %%a in ('dir /b /a:-d-h-s  *.*^|findstr /n .*') do if /i %%a==!input! if exist "%%~b" if /i not "%%~xb"==".lnk" (start "" "%%~b") else (
  35.         set kjp="%%~b"
  36.         call :Shortcut
  37.         set /p kjp=<"%temp%\kjtmp.tmp"
  38.         if exist !kjp! (start "" "!kjp!") else (if /i "!kjp:~0,4!"=="http" start "" iexplore.exe "!kjp!")
  39.         set kjp=
  40.     )
  41. )
  42. goto MenuAI
  43. :Shortcut
  44. if exist %kjp% for %%a in (exe txt bat doc mp3) do ((type %kjp%| find /i /v "/"| find /i ":"|find /i "\")||(type %kjp%| find /i "\"|find /i "%%a")||(type %kjp%| find /i "\"))>"%temp%\kjtmp.tmp"&&goto :eof
  45. pause
  46. goto c
复制代码

作者: 狱渊    时间: 2013-4-29 15:31

貌似不错哦




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2