如何使用环境变量的空间将字符串值保存到文件/从文件中加载?

时间:2018-07-22 08:31:09

标签: windows batch-file cmd

因此,我试图在批处理文件中保存和加载其字符串值具有空格的环境变量。如果变量没有空格,则代码可以正常工作,但是在关闭程序并从文件加载以前的保存后,带有空格的变量将无法正确显示。

以下是我要执行的操作的要点:

@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一样回显。

是否有任何建议为什么不能正常工作?

1 个答案:

答案 0 :(得分:1)

在您的for循环中,您必须添加"tokens=*",例如for /f "tokens=*" %%a in (fruit.sav) do set %%a才能读取整行。您还可以设置"delims="。 (如您所见,通常/F会一直读取到行尾或空格为止)