重写其他批处理文件中的某些变量

时间:2017-10-20 21:29:09

标签: batch-file cmd

所以,基本上我正在编写一个批处理文件,其中有多个变量从另一个名为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

1 个答案:

答案 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
)