|
wydos
中级用户
积分 304
发帖 117
注册 2006-4-4
状态 离线
|
『楼 主』:
[求助]如何一次性获得所有命令的"/?"帮助?
如何一次性获得在命令行中所有的"命令/?"帮助,并且把它保存在相应的"命令".txt中.
例如,cmd/? >>cmd.txt
[ Last edited by willsort on 2006-7-29 at 16:30 ]
|
|
2006-6-16 17:43 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
|
2006-6-16 18:08 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
3 楼』:
发一段自己最近写的代码上来,有点粗糙,其中部分参照了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 "^[A-Z]"') 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 来自 四川南充
状态 离线
|
|
2006-6-16 21:08 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
5 楼』:
呵呵,我那个脚本除了能一次性输出所有的CMD帮助信息之外,还能把每个命令的帮助内容保存在单独的文件里,能给用户一定的选择自由。
|
|
2006-6-16 21:19 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-6-16 21:53 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
|
2006-6-16 22:32 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
8 楼』:
Re Ups:
其实 namejm 兄代码的核心也不过是一句:
for /f %%i in ('help^|findstr "^[A-Z]"') do help %%i >>DOS命令帮助信息.txt
但是,这样单纯的代码产生的文本内容未加修饰,存在较多的排版问题,因而可读性比较低。另外,此类文档一般用于临时备查,所以索引和定位功能的实现比较重要,但用批处理实现起来较为复杂,有很多细节可能无法考虑周全[1]。
所以,楼主需要的是可能并非纯文本的cmd /?信息,而是2楼所提到的ntcmds.chm(Windows帮助文档的一部分)以及微软MSDN网站的知识和文档库。
[1][转贴][讨论]生成《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 楼』:
我把我所有的dos命令先保存在1.txt中(每个命令占一行),然后做个bat:
for /f %%i in (1.txt) do %%i/?>>%%i.txt
但有些成功了,有些就不行,比如: 生成的for.txt,其内容为空,也就是说for/?的内容没有进for.txt中.
这时为什么?
|
|
2006-6-17 09:39 |
|
|
220110
荣誉版主
积分 718
发帖 313
注册 2005-9-26
状态 离线
|
『第
10 楼』:
为什么不直接查看现成又详细的C:\WINDOWS\Help\ntcmds.chm??---见3742668版主签名.
|
|
2006-6-17 20:55 |
|
|
poyexinghun
新手上路
吃->学->睡
积分 12
发帖 4
注册 2006-7-16 来自 襄阳城边看风景!
状态 离线
|
『第
11 楼』:
Quote: | 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 |
|
|
diyuxuehu
初级用户
积分 26
发帖 11
注册 2006-7-21
状态 离线
|
『第
12 楼』:
我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 楼』:
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 楼』:
赫赫,俺別的沒看懂,到是学会一个保存文件名的方法:
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 楼』:
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 |
|