因此,我尝试保存并加载一个环境变量,该环境变量的字符串值在批处理文件中有一个空格。如果变量没有空格,则代码可以正常工作,但是在关闭程序并从文件中加载之前保存的变量后,带有空格的变量不能正确显示。
下面是我想要做的要点:
@echo off
setlocal enabledelayedexpansion
:menu
cls
echo What do you want to do?
echo 1. Set Variables
echo 2. Save and Exit
echo 3. Load
echo 4. Display
set /p input=
if %input%==1 goto set
if %input%==2 goto save
if %input%==3 goto load
if %input%==4 goto display
:set
set "a=apples"
set "b=big bananas"
goto display
:display
echo %a%
echo %b%
pause
goto menu
:save
(echo a=%a%)>>fruit.sav
(echo b=%b%)>>fruit.sav
echo saved!
pause
exit
:load
for /f %%a in (fruit.sav) do set %%a
goto display
在给定的示例中,如果文件被保存并加载,则变量引用%b%
最终仅作为big
返回。
有没有什么关于为什么这个不能正常工作的建议?
发布于 2018-07-22 17:07:00
在for循环中,您必须添加"tokens=*"
,如for /f "tokens=*" %%a in (fruit.sav) do set %%a
,以便读取整行内容。您还可以设置"delims="
。(如您所见,通常/F
会一直读到行尾或空格为止)
https://stackoverflow.com/questions/51463327
复制相似问题