次のようなメニューを作りたかったのです。
mode 59, 300
set line===========================================================
echo %line%
echo Tool colour menu!
echo %line%
Echo.
echo Choose your BACKGROUND colour!
echo.
echo 1 = Blue
echo 2 = Green
echo 3 = Aqua
echo 4 = Red
echo 5 = Purple
echo 6 = Yellow
echo 7 = White
echo 8 = Gray
echo 9 = Light Blue
echo 10 = Light Green
echo 11 = Light Aqua
echo 12 = Light Red
echo 13 = Light Purple
echo 14 = Light Yellow
echo 15 = Bright White
echo.
set /p background_app=Enter the number of the colour that you want for background (or enter for default):
そのメニューは background_app 変数になります!
その後:
mode 59, 300
set line===========================================================
echo %line%
echo Tool color menu!
echo %line%
Echo.
echo Choose your TEXT color!
echo.
echo 1 = Blue
echo 2 = Green
echo 3 = Aqua
echo 4 = Red
echo 5 = Purple
echo 6 = Yellow
echo 7 = White
echo 8 = Gray
echo 9 = Light Blue
echo 10 = Light Green
echo 11 = Light Aqua
echo 12 = Light Red
echo 13 = Light Purple
echo 14 = Light Yellow
echo 15 = Bright White
echo.
set /p text_app=Enter the number of the color that you want for text (or enter for default):
これは変数 %text_app% になります
ユーザーが入力した後、この変数をtxtファイルに保存したかったので、ユーザーがツールを実行した場合に備えて後で値を取得できます(ユーザーが選択している色を保持するため)
しかし、現在私は試しました:
:saveVars
(
ECHO Backuground=%background_app%
ECHO Text=%text_app%
) >colors.txt
GOTO :EOF
たとえば、次のように保存します。
Background=1
Text=7
そして今、ジレンマが発生します。これは、colors.txt から値のみを読み取り、変数として次のように設定したかったためです。
%background_apptxt%
%text_apptxt%
背景とテキストの値のみを読み取るにはどうすればよいですか? ご協力いただきありがとうございます :)
FOR を理解するのはとても簡単ですが、例えば:
Colors.txt には次の行が含まれています。
Background=1
Text=2
たとえば、このバッチを使用してテストバッチを作成しました。
@echo off
set background_app=black
set text_app=green
:saveVars
(
ECHO Background=%background_app%
ECHO Text=%text_app%
) >colors.txt
for /f "tokens=1,2 delims==" %%A in (colors.txt) do set "%%A_app=%%B"
%background_app% をエコーし、もう一度 %text_app% をエコーするにはどうすればよいですか? ありがとうございました