所以,基本上我正在编写一个批处理文件,其中有多个变量从另一个名为profiledata.bat的批处理文件中调用。
程序检查文件是否存在。如果没有,它应该创建一个新文件。
if exist \user\profiledata.bat (
set Pdata_exist=true
goto askPdata
) else (
goto newPdata
)
:newPdata
if exist \user\NUL (
if Pdata_exist=true goto delPdata
cd \user
goto addPdata
) else (
mkdir \user
cd \user
goto addPdata
)
set var2=10
echo set var1=%var2%>profiledata.bat
set var2=20
echo set var1=%var2%>profiledata.bat
REM Var1 is rewritten because var 2 changed.
然后它会将您的计算机信息写入文件。但是,我想要它,以便如果某个东西稍后改变,它将只重写该变量而不是文件的其余部分。
例如,echo
命令和>
将重写整个脚本而不只是variable
。我不能那样。相反,我想只重写variable
。
答案 0 :(得分:0)
我已删除了所有前导反斜杠并将您的Pdata_exist变量用双引号括起来。
if exist user\profiledata.bat (
set "Pdata_exist=true"
goto askPdata
) else (
goto newPdata
)
:newPdata
if exist user\ (
if "%Pdata_exist%"=="true" goto delPdata
cd user
goto addPdata
) else (
mkdir user
cd user
goto addPdata
)