Batch file 如何在将变量从一个批处理文件发送到另一个批处理文件时避免累积
我正在编写一个程序,从一个文件中获取数据,并对其进行修改,然后再次将其保存在同一个文件中 当我执行程序时,文件中会累积具有相同名称的变量 如何使其覆盖变量而不是累积 基本代码Batch file 如何在将变量从一个批处理文件发送到另一个批处理文件时避免累积,batch-file,Batch File,我正在编写一个程序,从一个文件中获取数据,并对其进行修改,然后再次将其保存在同一个文件中 当我执行程序时,文件中会累积具有相同名称的变量 如何使其覆盖变量而不是累积 基本代码 @echo off call data.bat echo variable1 (from data.bat) = %variable1% echo variable2 (from data.bat) = %variable2% pause call :Display rem IMPORTANT! This file MUS
@echo off
call data.bat
echo variable1 (from data.bat) = %variable1%
echo variable2 (from data.bat) = %variable2%
pause
call :Display
rem IMPORTANT! This file MUST end with GOTO :EOF!
pause
set /a variable2=variable2/2
@echo SET variable2=%variable2%>>data.bat
goto :EOF
pause
set variable1=22
SET variable2=99
数据文件
@echo off
call data.bat
echo variable1 (from data.bat) = %variable1%
echo variable2 (from data.bat) = %variable2%
pause
call :Display
rem IMPORTANT! This file MUST end with GOTO :EOF!
pause
set /a variable2=variable2/2
@echo SET variable2=%variable2%>>data.bat
goto :EOF
pause
set variable1=22
SET variable2=99
此行报告不正确(不是var3) 此行将
variable2
的值设置为“名为echo variable3的变量的当前值”+“/2”
由于echo variable3
可能未设置,批处理将variable2
设置为/2
,并按要求记录该值
所以-我们在猜测你打算做什么。也许variable3
是在未发布的例程display
中设置的
如果您打算在data.bat
文件中覆盖variable2
的设置,大概是其值的一半,那么正确的批处理行应该是
set /a variable2=variable2/2
或
它们是等价的
因此,variable3
与这个问题有什么关系是个谜。告诉我们您预期会发生什么将减少所需的猜测。cmd
可以覆盖文件(从一开始)或附加到文件(在最后)。。没有方法(过度)写入特定行。您必须读取并重写整个文件。
set /a variable2=%variable2%/2