Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在将变量从一个批处理文件发送到另一个批处理文件时避免累积_Batch File - Fatal编程技术网

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