本帖最后由 pcl_test 于 2016-6-19 20:12 编辑
- @echo off&Setlocal enabledelayedexpansion
- ::作者 小程936 QQ1781047213
- call :vbs
- set ch= 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
- set umu=ASSOC ATTRIB BREAK BCDEDIT CACLS CALL CD CHCP CHKDSK CHKNTFS CHOICE CLS CMD COLOR COMP COMPACT CONVERT COPY DATE DEL DIR DISKPART DISM DOSKEY DRIVERQUERY ECHO ENDLOCAL EXIT FC FIND FINDSTR FOR FORMAT FSUTIL FTYPE GOTO GPRESULT GRAFTABL HELP ICACLS IF LABEL MD MKLINK MODE MORE MOVE NET OPENFILES PATH PAUSE POPD PRINT PROMPT PUSHD RD RECOVER REG REM REN REPLACE ROBOCOPY SET SETLOCAL SC SCHTASKS SHIFT SHUTDOWN SORT START SUBST SYSTEMINFO TASKLIST TASKKILL TIME TITLE TREE TYPE VER VERIFY VOL XCOPY WMIC
- set um2=DISKPART DISM NET
- REM 针对特殊命令的优化 (ECHO+?&EXIT)|DISKPART net help
- reg query "HKU\S-1-5-19" >nul 2>&1 &&set adm=1||set adm=0
- echo A-Z搜索命令 1首选 2末选 5退出 9帮助 0清屏 空格翻页
- :so
- if DEFINED so (title %so% - soBAT) else title soBAT
- CHOICE /C%ch% /N /CS /T 45 /D 0
- (set /a er=%ERRORLEVEL%)&if %ERRORLEVEL% GTR 36 call cap.vbs
- if %er% LEQ 10 cls&goto num
- set so=%so%!ch:~%ER%,1!
- set /a n+=1,sn=0
- call :soso
- goto so
- :0
- set so=&set n=&title soBAT&goto :eof
- :soso
- cls
- for %%z in (%umu%) do (set zz=%%z&if /I "!so:~,%n%!" == "!zz:~,%n%!" (set szz=%%z&goto sosoc))
- :sosoc
- for %%z in (%umu%) do (set zz=%%z&if /I "!so:~,%n%!" == "!zz:~,%n%!" (echo %%z&set sz=%%z&set /a sn+=1))
- if %sn%==1 call :data %sz%
- if %sn%==0 ((call :0)&goto :eof)
- if /i %szz%==%so% echo 按1选择%szz%
- goto :eof
- :小程936
- if /I %1 == DISKPART (if %adm%==1 ((ECHO+?&EXIT)|DISKPART) else echo 权限不足,拒绝访问)|more
- if /I %1 == DISM (if %adm%==1 (DISM /?) else echo 权限不足,拒绝访问)|more
- if /I %1 == NET (%1 HELP)|more
- echo+&goto :eof
- :data
- title %1 - soBAT - 空格键翻页
- for %%z in (%um2%) do if /i "%%z" == "%1" ((call :小程936 %1)&(call :0)&(goto :eof))
- if EXIST %1.txt (more %1.txt) else ((%1 /?&echo+)|more)
- call :0
- goto :eof
- :vbs
- pushd "%~pd0"
- md he 2>nul
- cd he||(echo 权限不足,无法初始化&pause>nul&exit /b 1)
- >cap.vbs echo Set obb = CreateObject^(^"Wscript.Shell^"^)
- >>cap.vbs echo obb.SendKeys^"^{CAPSLOCK^}^"
- >ti.vbs echo Wscript.Sleep Wscript.Arguments^(0^)
- set n=
- goto :eof
- :num
- if %er%==1 call :data %szz%
- if %er%==2 call :data %sz%
- if %er%==5 exit /b
- if %er%==9 echo A-Z搜索命令 1首选 2末选 5退出 9帮助 0清屏 空格翻页
- if %er%==10 call :0
- goto so
复制代码 介绍:
直接按IF即输出IF的帮助,无需按Enter
直接按P即输出所有以P开头的命令,再按U即输出PUSHD的帮助,无需按Enter
按任意字母输出所有以该字母开头的命令,若只有一条直接显示命令帮助,若没有符合的命令自动清空输入,命令帮助支持换页输出
A-Z搜索命令 1首选 2末选 5退出 9帮助 0清屏 空格翻页
1首选 即 快速选择搜索结果的第一项
2末选 即 快速选择搜索结果的最后一项
采用CHOICE命令检测用户输入,不用set /p,只为少按Enter
优先搜索 自身目录\he\命令.TXT 找不到文件则输出 系统帮助,方便自定义帮助文件
改名为he.cmd并复制到C:\Windows\system32目录,即可在CMD中输入he调用本工具。 |