我想制作一个这样的菜单:
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%?谢谢
答案 0 :(得分:1)
使用FOR / F循环读取和解析每一行。您可以将令牌分隔符设置为=
,这样您就可以获得2个令牌。
for /f "tokens=1,2 delims==" %%A in (colors.txt) do set "%%A_app=%%B"
如果您的文本文件包含每个变量的全名,则代码可能会更容易。然后你可以简单地使用
for /f "delims=" %%A in (colors.txt) do set "%%A"
答案 1 :(得分:0)