中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何一次性获得所有命令的"/?"帮助?
作者:
标题: [求助]如何一次性获得所有命令的"/?"帮助? 上一主题 | 下一主题
wydos
中级用户





积分 304
发帖 117
注册 2006-4-4
状态 离线
『楼 主』:  [求助]如何一次性获得所有命令的"/?"帮助? 使用 LLM 解释/回答一下

如何一次性获得在命令行中所有的"命令/?"帮助,并且把它保存在相应的"命令".txt中.
例如,cmd/? >>cmd.txt

Last edited by willsort on 2006-7-29 at 16:30 ]


2006-6-16 17:43
查看资料  发送邮件  发短消息  网志  OICQ (327337973)  编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

http://www.cn-dos.net/forum/viewthread.php?tid=15954&fpage=1&highlight=





C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-6-16 18:08
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

  发一段自己最近写的代码上来,有点粗糙,其中部分参照了willsort的代码,希望对你有用。

  

@echo off
:: Code by JM 2006-6-11
:in
mode con lines=25
cls
color 1f
chcp 936>nul
title 请输入命令名称
echo.
echo ╭────────╮
echo ╭─────────┤ 请输入命令 ├──────────╮
echo │ ╰────────╯ │
echo │ 操作说明: │
echo │ │
echo │ 请输入一个DOS命令名称,然后回车。 │
echo │ │
echo │ 本操作将把该DOS命令的帮助信息输出到当 │
echo │ │
echo │ 前目录下以该命令为文件名的文本文件中 │
echo │ │
echo │ (例如:copy.txt)。完成一个操作之后, │
echo │ │
echo │ 将返回本界面继续下一个操作。生成所有 │
echo │ │
echo │ 的DOS帮助信息请输入all。 │
echo │ │
echo │╭──────────────╮ ╭──────╮│
echo ╰┤ 察看DOS命令列表请输入help ├─────┤退出请按 0 ├╯
echo ╰──────────────╯ ╰──────╯
echo.
echo.
set input=
set /p input= 请输入一个DOS命令名称并回车确认:
if '%input%'=='0' exit
if '%input%'=='' goto in
if '%input%'=='help' goto help
if '%input%'=='all' goto cmdinfo
%input% >nul 2>nul || (
cls
color 0c
title 命令输入错误
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo ──────────────────────────
echo.
echo "%input%" 不是DOS命令,请重新输入
echo.
echo ──────────────────────────
pause>nul && goto in
)
%input% /? >%input%.txt
goto info

:help
mode con lines=84
cls
title DOS命令列表
echo.
help
echo ╭────────────────────────────╮
echo ───┤ 上一步请按1,生成DOS命令列表help.txt请回车,退出请按 0 ├────
echo ╰────────────────────────────╯
echo.
echo.
set /p input= 请选择(0/1/回车)
if not '%input%'=='' set input=%input%
if '%input%'=='0' exit
if '%input%'=='1' goto in
if '%input%'=='help' goto made
goto help

:cmdinfo
mode con lines=25
cls
title 生成帮助信息
(echo.
echo.
echo DOS命令帮助信息
echo.
echo 由 %username% 创建于 %date:~0,10%
echo.)>DOS命令帮助信息.txt
for /f %%i in ('help^|findstr "^"') do (
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo ──────────────────────────
echo.
echo 正在生成 %%i 的帮助信息,请稍候...
echo.
echo ──────────────────────────
help %%i>>DOS命令帮助信息.txt
if errorlevel 1 echo.>>DOS命令帮助信息.txt
(if errorlevel 0 echo ————————————————————————
echo.)>>DOS命令帮助信息.txt)
cls
title 操作成功
echo.
echo.
echo.
echo.
echo.
echo ──────────────────────────
echo.
echo 操作已完成,已经在当前目录下生成
echo.
echo "DOS命令帮助信息.txt" 文件
echo.
echo ──────────────────────────
ping 127.0.0.1 -n 3 >nul
start DOS命令帮助信息.txt
goto in

:made
mode con lines=25
(echo.
echo.
echo DOS命令列表
echo.
echo.)>help.txt
help>>help.txt

:info
cls
chcp 936>nul
title 操作成功
echo.
echo.
echo.
echo.
echo.
echo ──────────────────────────
echo.
echo 操作已完成,已经在当前目录下生成
echo.
echo %input%.txt文件
echo.
echo ──────────────────────────
start %input%.txt
goto in


2006-6-16 18:42
查看资料  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

楼上的把问题搞复杂了把?就两句命令就可以了!
help>a.txt
for /f %i in (a.txt) do @%i /?>>1.txt




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-16 21:08
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

  呵呵,我那个脚本除了能一次性输出所有的CMD帮助信息之外,还能把每个命令的帮助内容保存在单独的文件里,能给用户一定的选择自由。


2006-6-16 21:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

Originally posted by namejm at 2006-6-16 21:19:
  呵呵,我那个脚本除了能一次性输出所有的CMD帮助信息之外,还能把每个命令的帮助内容保存在单独的文件里,能给用户一定的选择自由。

即使把每个命令的帮助内容保存在单独的文件里也没有不要搞得那么复杂吧,可以用2个命令何必用那么多的命令!




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-16 21:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

  简洁与方便,各取所需吧。


2006-6-16 22:32
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

Re Ups:

其实 namejm 兄代码的核心也不过是一句:

for /f %%i in ('help^|findstr "^"') do help %%i >>DOS命令帮助信息.txt

但是,这样单纯的代码产生的文本内容未加修饰,存在较多的排版问题,因而可读性比较低。另外,此类文档一般用于临时备查,所以索引和定位功能的实现比较重要,但用批处理实现起来较为复杂,有很多细节可能无法考虑周全。

所以,楼主需要的是可能并非纯文本的cmd /?信息,而是2楼所提到的ntcmds.chm(Windows帮助文档的一部分)以及微软MSDN网站的知识和文档库。

生成《CMD命令速查手册》的批处理
http://www.cn-dos.net/forum/viewthread.php?tid=18321




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-6-17 01:40
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wydos
中级用户





积分 304
发帖 117
注册 2006-4-4
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

我把我所有的dos命令先保存在1.txt中(每个命令占一行),然后做个bat:
for /f %%i in (1.txt) do %%i/?>>%%i.txt
但有些成功了,有些就不行,比如: 生成的for.txt,其内容为空,也就是说for/?的内容没有进for.txt中.
这时为什么?


2006-6-17 09:39
查看资料  发送邮件  发短消息  网志  OICQ (327337973)  编辑帖子  回复  引用回复
220110
荣誉版主




积分 718
发帖 313
注册 2005-9-26
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

为什么不直接查看现成又详细的C:\WINDOWS\Help\ntcmds.chm??---见3742668版主签名.


2006-6-17 20:55
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
poyexinghun
新手上路

吃->学->睡


积分 12
发帖 4
注册 2006-7-16
来自 襄阳城边看风景!
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

Originally posted by qwe1234567 at 2006-6-16 21:08:
楼上的把问题搞复杂了把?就两句命令就可以了!
help>a.txt
for /f %i in (a.txt) do @%i /?>>1.txt

呵呵,改下兄的代码,生成命令名帮助的文件,
for /f %i in (a.txt) do @%i /? > %i.txt
大多数可以生成,少数的不可以,请各位修改!

例如:
'FOR' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'中某个带标签的行。' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'IF' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

(使用2003系统)


2006-7-19 01:28
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (94157508)  编辑帖子  回复  引用回复
diyuxuehu
初级用户





积分 26
发帖 11
注册 2006-7-21
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

我XP系统
help>a.txt
for /f %i in (a.txt) do @%i /?>>%i.txt
结果只生成A.TXT,别的没有拉,为什么啊????


2006-7-28 12:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

Re diyuxuehu:

  那是因为a.txt同一行的内容中,不仅有命令,还有命令用途的简单说明,所以在for语句中,%i的内容是"命令+说明",所以呢,for语句执行错误,只留下了help>a.txt生成的a.txt。




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-7-28 13:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
kclmx
初级用户





积分 38
发帖 15
注册 2006-7-4
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

赫赫,俺別的沒看懂,到是学会一个保存文件名的方法:
dir *.exe /w/n o >c:\1.txt

请问,如果我想查*.exe和*.dll文件名并保存在一个文件里,應該怎麽写?


哦,会了,直接dir *.exe *.dll /w/n o >1.txt
哎,要学的東西還很多呀

仔細看看,这样的话 /n o的排序失效了,晕,如果不想分幵写
dir *.exe /w/n o >1.txt
dir *.dll /w/n o >>1.txt
如何用一句代碼實現?

Last edited by kclmx on 2006-7-28 at 14:32 ]


2006-7-28 13:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

Re poyexinghun:

关于for/if命令的问题,可以将%i /?改为以下三句中任何一句:

help %i
call %i /?
cmd/c%i/?。

但同时考虑非命令串的剔除,则使用cmd/c%i/?最好的选择。如下:

for /f %c in ('help') do @cmd/c%c/? 2>nul




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-7-29 16:50
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: