最近、バッチファイルの作成方法を学び始めました。インターネット関連のログ ファイルの束を含むフォルダーがあります。.cmd ファイル (同じフォルダーにある) を実行すると、フォルダー内にあるログ ファイルの数を確認し、そこから番号付きのメニューを作成できるようにしたいと考えています。フォルダに 20 個のファイルがあるとします。ユーザーは 1 から 21 までを選択できる必要があります。21 はバッチ ファイルを閉じます。これが私がこれまでに行ったことです:
@echo off
setlocal enableextensions enabledelayedexpansion
set RawData1=TempData%random%.tmp
set FileCtr=0
:MAIN
dir *.log /b | findstr /i /n ".log" > %RawData1%
for /f "tokens=1 delims=:" %%a in (%RawData1%) do set FileCtr=%%a
set /a ExitCode=%FileCtr% + 1
set UserChoice=%ExitCode%
echo.
echo +++++++++++++++++++++++++++
echo Weblog File Viewer
echo +++++++++++++++++++++++++++
for /f "tokens=1-2 delims=:." %%a in (%RawData1%) do echo %%a. %%b
echo %Exitcode%. To Quit.
set /p UserChoice= Choose item number from menu (%UserChoice%):
echo\
echo user entered: %UserChoice%
pause
:THEEND
del /q %RawData1%
このバッチ ファイルで今できることは、ログ ファイルの数を計算し、そこから番号付きのメニューを作成することです。もちろん、私が望んでいたファイルタイプは表示されません。したがって、たとえば「Kelley-Blue-Book.log」は「Kelley-Blue-Book」としてのみ表示されます。ただし、ユーザーがリストから番号 4 を選択すると、メモ帳を使用して目的のログ ファイルを実際に開く方法がわからなかったため、プログラムは終了します。