标题: [文件管理] 批处理智能菜单 [打印本页]
作者: cjiabing 时间: 2011-6-25 18:56 标题: 批处理智能菜单
本帖最后由 cjiabing 于 2011-7-30 09:29 编辑
无聊,再发一个。
修改了一下,支持打开网址,HTTP类的。
1、放到任何目录下,生成当前目录下的文件菜单。默认菜单【M0】
2、用“ set PTxt="D:\123.txt" ”指定文本路径,文本中包含文件完全路径列表,可据此生成菜单。切换【M1】
3、将网址(HTTP类)写入文本,可以生成网址列表菜单。
生成菜单的意思是,根据提供的内容生成一个可提供选择和执行的菜单项。不必另外写代码支持,可用此智能菜单工具直接生成,有点万能。
-
- ::摘自《BatMPlayer 2011 Beta V3.28.5.15》
- @echo off&setlocal enabledelayedexpansion&title 智能菜单 V1.1 &::by cjiabing&from http://hi.baidu.com/cjiabing&from http://www.bathome.net
- ::智能自动生成菜单,输入序号执行对应程序。可以指定目录生成,也可以指定文本生成,亦可执行HTTP网址。
- ::指定文本请使用“ set PTxt="D:\123.txt" ”的形式设定路径,再使用【M1】打开。
- ::文本只需文件路径列表即可,可用“ dir /b /s ”生成。
- set PTxt="D:\123.txt"
- ::set PTxt="%~1"
- :MenuAI
- cls
- echo;
- echo;
- echo; 智能快捷菜单
- echo; —————————————————————————————————————
- if defined PTxt if /i "!input!"=="M1" (
- if not "%PTxt%"=="" if exist !PTxt! for /f "tokens=1,* delims=:" %%a in ('findstr /n .* !PTxt!') do if not "%%c"=="" echo; 【 %%a 】【 %%~nb 】:%%~b
- echo;
- echo; 【序号】【名称】【路径】【M0】:%PTxt%
- ) else (
- for /f "tokens=1,* delims=:" %%a in ('dir /b /a:-d-h-s *.*^|findstr /n .*') do echo; 【 %%a 】%%b
- echo;
- echo; 【序号】【名称】【路径】【M1】:%cd%
- )
- echo; —————————————————————————————————————
- echo; [自动生成菜单,输入序号执行对应程序。切换:默认【M0】文本【M1】]
- echo;
- set /p input= 请输入:
- if "!input!"=="" goto MenuAI
- if /i "!input!"=="M0" goto MenuAI
- if /i "!input!"=="M1" set mm=1&goto MenuAI
- if !mm!==1 (
- 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!")
- set mm=0
- ) else (
- 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 (
- set kjp="%%~b"
- call :Shortcut
- set /p kjp=<"%temp%\kjtmp.tmp"
- if exist !kjp! (start "" "!kjp!") else (if /i "!kjp:~0,4!"=="http" start "" iexplore.exe "!kjp!")
- set kjp=
- )
- )
- goto MenuAI
- :Shortcut
- 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
- pause
- goto c
复制代码
作者: 狱渊 时间: 2013-4-29 15:31
貌似不错哦
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |