在其他批处理文件中重写某些变量
问题描述:
所以,基本上我正在编写一个批处理文件,其中有多个变量从另一个称为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
。
答
我已经删除了所有前导反斜杠,并将它们用双引号括起来隔离了您的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
)
我在代码中看不到一个'ECHO'命令,所以我不知道你需要什么帮助。另外,当使用'IF'命令进行字符串比较时,需要使用两个等号:'==' – Squashman
@Squashman对不起,我很快写了代码,并没有意识到我的错误。谢谢。回声命令被删除,因为我想我不能在不覆盖批处理文件中的数据的情况下使用它们。我会快速添加它们。 – OhNoItIsAnotherAccount
请提供您想要profiledata.bat的样例。我不理解你的问题的描述。 – Squashman