| 
 
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 | 
  
 | 
 | 
 
electronixtar 
铂金会员
 
       
 
  
  
积分 7493 
发帖 2672 
注册 2005-9-2 
状态 离线
 | 
『第 2 楼』:
 
 
使用 LLM 解释/回答一下
  
 
    
 
  
  |  
                  
  
                     
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 来自 四川南充 
状态 离线
 | 
 | 
  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 来自 四川南充 
状态 离线
 | 
 | 
  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 楼』:
 
 
使用 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 | 
  
 | 
 | 
 
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 | 
  
 | 
 | 
 
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 | 
  
 |