我想为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在命令完成后结束? 我该如何解决?
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] 举报,一经查实,本站将立刻删除。