1

今日5回ほど行って、for /?すべての画面を間隔を空けて移動し、代替参照の一番下にたどり着いた後、私はそれをすばやく簡単に取得する方法を考え出すことにしました. しばらくして、私は思いついた:

for /? | more +118 

それをバッチ ファイルにダンプして optparams.cmd という名前を付けました。今、同じことをしたいのですが、SET環境変数の置換に関するセクションをリストするだけです。もう一度トリックを実行できますが、MORE完了したら残りの画面をスクロールする必要があります。

私の質問は次のとおりです。開始パラメータと終了パラメータを指定して、STDOUT のセクションのみを表示する最も簡単な方法は何でしょうか? 行番号または特定のテキスト文字列が最適です。すべてを配列に読み込むことが最初の方法だと思いますが、今でもバッチで配列に頭を悩ませようとしています。洞察やヒントをいただければ幸いです。

編集:MC NDの投稿を、基本的に私が望むことを行う次の機能に変えました。

    call :ExtractBetween 68 96 "set /?"
    exit /b


    :ExtractBetween start stop cmd
    @echo off & setlocal
    set _start=%1 & set _end=%2 & set _cmd=%~3
    for /F "tokens=1,* delims=:" %%f in (
    '%_cmd% ^| findstr /n /r "." ') do (
        if %%f geq %_start% if %%f leq %_end% (
            echo %%g)
    ) 
    exit /b
4

3 に答える 3