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

问题描述:

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

我在代码中看不到一个'ECHO'命令,所以我不知道你需要什么帮助。另外,当使用'IF'命令进行字符串比较时,需要使用两个等号:'==' – Squashman

+0

@Squashman对不起,我很快写了代码,并没有意识到我的错误。谢谢。回声命令被删除,因为我想我不能在不覆盖批处理文件中的数据的情况下使用它们。我会快速添加它们。 – OhNoItIsAnotherAccount

+0

请提供您想要profiledata.bat的样例。我不理解你的问题的描述。 – Squashman

我已经删除了所有前导反斜杠,并将它们用双引号括起来隔离了您的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 
)