中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-15 07:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » cmd命令帮助(为新手) 查看 1,366 回复 8
楼 主 cmd命令帮助(为新手) 发表于 2008-04-22 00:14 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
代码是复杂了点,但作用还是实在(简化ing...),请大家测试。
-----------------------------------
代码已优化,但5楼的代码更强,效率更高。
@echo off&color 9f
set n=1
for /f "delims= " %%i in ('help') do set str=%%i&call :lp %%str%%
:select
cls&echo %var1%&echo %var2%&echo %var3%&echo %var4%&echo %var5%
set select=0
set /p select=请选择要读取帮助的命令序号:
for /l %%i in (1,1,71) do if "%%i"=="%select%" goto show
echo 请正确选择。&ping /n 2 127.1>nul&goto select
:show
setlocal enabledelayedexpansion
set /a a=%select%%%16,b=select/17+1
if %a% equ 0 set a=16
set list=!!var%b%!!
for /f "tokens=%a% delims= " %%i in ("%list%") do set str=%%i
set str=%str:*.=%
cls&echo %str%命令的帮助内容如下:&echo.
%str% /? | more
endlocal&pause>nul&goto :select
:lp
for %%i in (a b c d e f g h i l m p r s t v x) do if /i "%%i"=="%str:~,1%" goto loop
goto :eof
:loop
set /a m+=1,v+=1
set var=%var% %v%.%str%
set var%n%=%var%
if %m% equ 16 set var=&set /a m-=16,n+=1


[ Last edited by zw19750516 on 2008-4-22 at 12:53 PM ]
批处理之家新域名:www.bathome.net
2 这是什么啊 发表于 2008-04-22 02:24 ·  中国 江苏 宿迁 泗洪县 电信
新手上路
积分 4
发帖 2
注册 2008-04-17 07:37
UID 116115
性别 男
状态 离线
这是什么啊
3 发表于 2008-04-22 04:54 ·  中国 北京 鹏博士BGP
新手上路
积分 10
发帖 5
注册 2008-04-19 16:15
UID 116327
性别 男
状态 离线
我什么都不说了楼猪你弄的这个真他妈的实惠谢谢啊
4 发表于 2008-04-22 10:17 ·  中国 河南 郑州 电信
初级用户
★★
积分 123
发帖 62
注册 2008-04-09 16:11
UID 115362
性别 男
状态 离线
顶!!!!!!!
5 发表于 2008-04-22 11:48 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
也来一个
:

@echo off&set "ko= "
setlocal enabledelayedexpansion
for /f "delims= " %%a in ('help^|findstr /i "^"') do (
set /a n+=1&set _!n!=%%a!ko!
)
set _72=共71个命令
:loop
color 1f&title cmd 命令帮助
for /l %%a in (1 3 !n!) do (
set /a t=%%a+1,s=t+1
if !t! lss 10 (set l=0) else set "l="
call echo !l!%%a. !_%%a:~0,20! !l!!t!. %%_!t!:~0,20%% !l!!s!. %%_!s!:~0,10%%
)
set /p m=请输入编号查询相应命令帮助:&cls
set /a m=100!m!%%100
call set ok=%%_!m!%%
title %ok:~0,10% 命令帮助&color 1e
%ok% /? | more
color 5a&echo.&echo 按任意键回主菜单。。。
pause>nul
cls&goto loop
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
bat-zw +4 2008-04-22 11:57
moniuming +4 2008-04-22 23:45
致精致简!
6 对5楼的代码关键部分我来做个小注释: 发表于 2008-04-22 13:39 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
&&很多新手可能真搞不清楚这段代码是怎么把输入的纯数字关联到要查询的命令字符串上去的(我开始也没搞明白),其实,大家只要在"set _72=共71个命令"的下一行输入"echo !_12!&pause"(1-71间的任意数字)就会看到显示为"cls",而在"set /p m=请输入编号查询相应命令帮助:&cls"下面第二行"call set ok=%%_!m!%%"(m是查询时输入的数值假设为12),又将!_12!(也就是cls)赋值给了ok,那么接下来的"%ok% /? | more"="cls /? | more",也就是向cmd发出请求cls命令的帮助了。
  至于其余部分应该还是好理解,我就不详细说明了。

[ Last edited by zw19750516 on 2008-4-22 at 01:42 PM ]
批处理之家新域名:www.bathome.net
7 发表于 2008-04-26 09:55 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
来个生成hta的,以后用鼠标点击就可以了^_^
::code zh159@bbs.cn-dos.net 2008-4-26
@echo off
title 命令提示符-命令行帮助信息生成器 - code zh159@bbs.cn-dos.net 2008-4-26
set Name=命令行帮助信息
echo.
echo 请稍等...
>%Name%.hta echo ^<html^>
>>%Name%.hta echo ^<title^>命令提示符-命令行帮助信息 - code zh159@bbs.cn-dos.net 2008-4-26^</title^>
>>%Name%.hta echo ^<HTA:APPLICATION
>>%Name%.hta echo APPLICATIONNAME="命令提示符-命令行帮助信息"
>>%Name%.hta echo SCROLL="no"
>>%Name%.hta echo INNERBORDER="no"
>>%Name%.hta echo /^>
>>%Name%.hta echo ^<script language="VBScript"^>
>>%Name%.hta echo window.resizeTo 900, 660
>>%Name%.hta echo ileft=(window.screen.width-900)/2
>>%Name%.hta echo itop=(window.screen.height-660)/2-15
>>%Name%.hta echo window.moveTo ileft,itop
>>%Name%.hta echo ^</script^>
>>%Name%.hta echo ^<style^>
>>%Name%.hta echo a:link {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:visited {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:hover {color: #ffffff; background-color:0000ff;}
>>%Name%.hta echo a:active {color: #ff0000; background-color:ffffff;}
>>%Name%.hta echo em {font:18px Tahoma; color:0000ff;}^</style^>
>>%Name%.hta echo ^</style^>
>>%Name%.hta echo ^<body style="FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2);color:#ffffff;"^>
>>%Name%.hta echo ^<table width="100%%" height="100%%" align="center" border="0" cellspacing="0" cellpadding="1" style="border: solid 1 #ffffff;"^>
>>%Name%.hta echo ^<tr^>
>>%Name%.hta echo ^<td width="120" height="100%%"^>
>>%Name%.hta echo ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo ^<table align="left"^>^<tr^>^<td^>
>>%Name%.hta echo 命令列表^<br^>

echo.
for /f %%i in ('help^|findstr /i "^"') do (
set/a n+=1
call set/p= 共 %%n%% 个命令,正在处理...<nul
set /p=<nul
>>%Name%.hta echo. ^<a href="#%%i"^>%%i^</a^>^<br^>
)
>>%Name%.hta echo ^<td^>^<tr^>^</table^>
>>%Name%.hta echo ^</span^>
>>%Name%.hta echo ^</td^>
>>%Name%.hta echo ^<td^>
>>%Name%.hta echo ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo ^<table align="left" style="font:15px Fixedsys;"^>^<tr^>^<td^>

echo.&echo.
echo 序号 - 命令名称
for /f %%i in ('help^|findstr /i "^"') do (
set/a m+=1
call echo %%m%%. - %%i
>>%Name%.hta echo ^</p^>^<a name="#%%i"^>^</a^>^<em^>^<u^>%%i^</u^>^</em^>^<br^>
for /f "delims=" %%f in ('%%i/?') do (
set "str=%%f"
setlocal EnableDelayedExpansion
set str=!str: = !
set str=!str:^<=^&lt;!
set str=!str:^>=^&gt;!
>>%Name%.hta echo.  !str!^<br^>
endlocal
)
)
>>%Name%.hta echo ^<td^>^<tr^>^</table^>
>>%Name%.hta echo ^</span^>
>>%Name%.hta echo ^</td^>
>>%Name%.hta echo ^</tr^>
>>%Name%.hta echo ^</table^>
>>%Name%.hta echo ^</body^>
>>%Name%.hta echo ^</html^>

echo.
echo 完成!按任意键打开“%Name%.hta”。
pause>nul
start %Name%.hta
exit


生成过程中加了变色处理,速度慢了N多
::code zh159@bbs.cn-dos.net 2008-4-26
@echo off
title 命令提示符-命令行帮助信息生成器 - code zh159@bbs.cn-dos.net 2008-4-26
set Name=命令行帮助信息
echo.
echo 请稍等...
>%Name%.hta echo ^<html^>
>>%Name%.hta echo ^<title^>命令提示符-命令行帮助信息 - code zh159@bbs.cn-dos.net 2008-4-26^</title^>
>>%Name%.hta echo ^<HTA:APPLICATION
>>%Name%.hta echo APPLICATIONNAME="命令提示符-命令行帮助信息"
>>%Name%.hta echo SCROLL="no"
>>%Name%.hta echo INNERBORDER="no"
>>%Name%.hta echo /^>
>>%Name%.hta echo ^<script language="VBScript"^>
>>%Name%.hta echo window.resizeTo 900, 660
>>%Name%.hta echo ileft=(window.screen.width-900)/2
>>%Name%.hta echo itop=(window.screen.height-660)/2-15
>>%Name%.hta echo window.moveTo ileft,itop
>>%Name%.hta echo ^</script^>
>>%Name%.hta echo ^<style^>
>>%Name%.hta echo a:link {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:visited {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:hover {color: #ffffff; background-color:0000ff;}
>>%Name%.hta echo a:active {color: #ff0000; background-color:ffffff;}
>>%Name%.hta echo em {font:18px Tahoma; color:0000ff;}^</style^>
>>%Name%.hta echo ^</style^>
>>%Name%.hta echo ^<body style="FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2);color:#ffffff;"^>
>>%Name%.hta echo ^<table width="100%%" height="100%%" align="center" border="0" cellspacing="0" cellpadding="1" style="border: solid 1 #ffffff;"^>
>>%Name%.hta echo ^<tr^>
>>%Name%.hta echo ^<td width="120" height="100%%"^>
>>%Name%.hta echo ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo ^<table align="left"^>^<tr^>^<td^>
>>%Name%.hta echo 命令列表^<br^>

echo.
for /f %%i in ('help^|findstr /i "^"') do (
set/a n+=1
call set/p= 共 %%n%% 个命令,正在处理...<nul
set /p=<nul
>>%Name%.hta echo. ^<a href="#%%i"^>%%i^</a^>^<br^>
)
>>%Name%.hta echo ^<td^>^<tr^>^</table^>
>>%Name%.hta echo ^</span^>
>>%Name%.hta echo ^</td^>
>>%Name%.hta echo ^<td^>
>>%Name%.hta echo ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo ^<table align="left" style="font:15px Fixedsys;"^>^<tr^>^<td^>

echo.&echo.
echo 序号 - 命令名称
for /f %%i in ('help^|findstr /i "^"') do (
set/a m+=1
rem call echo %%m%%. - %%i
setlocal EnableDelayedExpansion
set /p= <nul&set /p= <nul>"!m!. - %%i"&findstr /a:c .* "!m!. - %%i*" 2>nul&set /p=<nul
endlocal
>>%Name%.hta echo ^</p^>^<a name="#%%i"^>^</a^>^<em^>^<u^>%%i^</u^>^</em^>^<br^>
for /f "delims=" %%f in ('%%i/?') do (
set "str=%%f"
setlocal EnableDelayedExpansion
set str=!str: = !
set str=!str:^<=^&lt;!
set str=!str:^>=^&gt;!
>>%Name%.hta echo.  !str!^<br^>
endlocal
)
setlocal EnableDelayedExpansion
set /p= <nul&findstr /a:a .* "!m!. - %%i*" 2>nul&echo.&del /q "!m!. - %%i" 2>nul
endlocal
)
>>%Name%.hta echo ^<td^>^<tr^>^</table^>
>>%Name%.hta echo ^</span^>
>>%Name%.hta echo ^</td^>
>>%Name%.hta echo ^</tr^>
>>%Name%.hta echo ^</table^>
>>%Name%.hta echo ^</body^>
>>%Name%.hta echo ^</html^>

echo.
echo 完成!按任意键打开“%Name%.hta”。
pause>nul
start %Name%.hta
exit
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
jmz573515 +9 2008-04-26 15:52
8 发表于 2008-04-26 10:21 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
UID 104754
性别 男
状态 离线
Originally posted by zh159 at 2008-4-26 09:55 AM:
来个生成hta的,以后用鼠标点击就可以了^_^
::code zh159@bbs.cn-dos.net 2008-4-26
@echo off
title 命令提示符-命令行帮助信息生成器 - code zh159@bbs.cn-dos.net ...



好.好..............很好.............
9 发表于 2008-04-26 13:08 ·  中国 湖北 武汉 电信
新手上路
积分 4
发帖 2
注册 2008-04-09 13:33
UID 115346
性别 男
状态 离线
很强大
论坛跳转: