Я хотел сделать генератор справки для всей команды в help
в Windows cmd и записать его в отдельные файлы. Так вы спрашиваете /? на всех командах, которые находятся в списке при вводе help
в cmd. Вот основная часть моего кода:Сгенерировать файлы справки
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
)
)
)
)
Я использую все последовательности из [Q..M] в моем обычном ехре, потому что есть некоторые проблемы с просто набором [AZ] Но проблема в том, что в моих файлах FOR и IF - есть помощь для команды REM. Кто-нибудь знает, почему это так? Чтобы исправить это я использую:
FOR/? >%mypath%\FOR.txt
IF/? >%mypath%\IF.txt
Но я не могу понять, почему это так.
Я до сих пор есть файл с помощью для 'FOR' и для' IF' с помощью для команда 'REM' каким-то образом. И вы могли бы объяснить свое регулярное выражение [^^^^ o] - вы инвертируете набор 4 раза? –
И подсказка cmd, и регулярное выражение обрабатывают escape-последовательности, поэтому для того, чтобы получить * one * caret, одиночная каретка экранирована, затем два каретки снова экранируются. Я нашел только с [A-Z], у меня есть две дополнительные строки «For», поэтому я добавил, что для «не совпадают o как второй символ». Я попробовал [A-Z] [A-Z] для двух столиц, но он все еще соответствовал «For». Возможно, диапазоны нечувствительны к регистру, или просто ошибка. FYI, я провел ваш и мой, и у меня не было REM в файлах FOR.txt или IF.txt. Попробуйте «@echo help %% i> %% i.txt», поэтому просмотрите команды, которые вы генерируете. –
Это зависит от региона. Он отлично работает на английском языке, но не будет работать на других языках. – dbenham