微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生成帮助文件

我想为Windows cmd中的所有命令帮助生成器,并将其写入单独的文件。 所以你问/? 在cmd中键入help时,列表上列出的所有命令上。 这里是我的代码的主要部分:

rem mypath - it's a folder where I put my results rem In help all command are written by capitals letters for /f "tokens=1 usebackq" %%i in (`help^|findstr /B /R "[QWERTYUIOPASDFGHJKLZXCVBNM][QWERTYUIOPASDFGHJKLZXCVBNM]"`) do ( if NOT "%%i"=="GRAFTABL" ( if NOT "%%i"=="disKPART" ( if NOT "%%i"=="SC" ( help %%i > !mypath!%%i.txt ) ) ) )

我在我的Regular Exp中使用了[Q..M]中的所有序列,因为[AZ]中有一些问题,但问题是在我的FOR和IF文件中 – REM命令有帮助。 有没有人知道为什么是这样? 要解决它,我使用:

FOR/? >%mypath%FOR.txt IF/? >%mypath%IF.txt

但我不明白为什么是这样。

在命令提示符下运行C ++ – Windows

包含Perl单线程的Shell脚本具有空白结果

确认和负面预测给错误

为什么我的stderrredirect在命令完成后结束? 我该如何解决

程序显示从Windows命令行“吐司”通知popup窗口?

Awk-like BEGIN和END以及Ruby命令行

窗口tr – 相当于

无法用svn + sshinput密码(或其他任何东西)到plink

CMD全屏Visual Studio

使用命令提示符意外删除具有长扩展名的文件

您在问题中发布的代码为我提供了正确的结果(甚至在我重新格式化之前)。

请参阅findstr为什么不正确地处理案件(在某些情况下)? 解释为什么[AZ]与FINDSTR无法正常工作。 有关已知FINDSTR怪癖的详尽列表,请参阅Windows FINDSTR命令的未记录功能和限制是什么?

过滤命令名称的更好方法是查找以至少一个非空格字符开头的行,后跟任意数量的其他非空格字符,后跟2个空格。

如果你想忽略某些命令,你可以简单的使用额外的FINDSTR和/ V选项。

解决方案成为一个合理的单行程序,可以从命令提示符运行而不需要批处理脚本:

for /f %A in ('help^|findstr /rc:"^[^ ][^ ]* "^|findstr /v "GRAFTABL disKPART SC"') do @help %A >%A.txt

或者作为可以插入脚本的代码

for /f %%A in ( 'help^|findstr /rc:"^[^ ][^ ]* "^|findstr /v "GRAFTABL disKPART SC"' ) do help %%A >"!mypath!%%A.txt"

编辑 – 2015-10-11

HELP输出的第一行和最后一行在我的英文机器上以For (mixed case)开始。 这个词恰好是有帮助的有效命令,所以FOR.TXT文件被创建了3次。

我认为所有的语言在第一行和最后一行都使用混合大小写。 细化FINDSTR过滤器以排除第二个字符为空格或小写字符的任何行是不难的:

for /f %A in ('help^|findstr /rvc:"^.[abcdefghijklmnopqrstuvwxyz ]"^|findstr /v "GRAFTABL disKPART SC"') do @help %A >%A.txt

我无法重现你的问题,但是这对我来说是正确的,我发现了一个更简单的正则表达式:

@echo off for /f %%i in ('help^|findstr /B /R [AZ][^^^^o]') do ( if NOT "%%i"=="GRAFTABL" ( if NOT "%%i"=="disKPART" ( if NOT "%%i"=="SC" ( help %%i > %%i.txt ) ) ) )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐