0

我在整个批处理文件中传输变量时遇到问题。

这是我所拥有的一个粗略示例:

@echo off
setlocal enabledelayedexpansion

:one
set variableone=outputone
set variabletwo=outputtwo
set variablethree=outputthree
goto two

:two
set /a variable%variableone%four=numberone
set /a variable%variabletwo%five=numbertwo
set /a variable%variablethree%six=numberthree
goto three

:three
set /a variable%variableone%four+=(2*(!variable%variabletwo%five!-!!variable%variablethree%six!)
echo !variable%variableone%four!
exit

它比这长得多,这只是它实际的简化版本,但是,标签“:三”中的变量不会向下传递,因此变量最终为空白,这也使方程式也空白。有没有办法来解决这个问题?

4

1 回答 1

1

很难看到你在做什么。

在下面的代码中,我NUMBER*用值替换了变量名。

我还添加了缺少的右括号,我想知道这两个successinve!

@ECHO OFF
setlocal enabledelayedexpansion

:one
set variableone=outputone
set variabletwo=outputtwo
set variablethree=outputthree
goto two

:two
set /a variable%variableone%four=numberone
set /a variable%variabletwo%five=numbertwo
set /a variable%variablethree%six=numberthree
set /a variable%variableone%four=14
set /a variable%variabletwo%five=25
set /a variable%variablethree%six=36
goto three

:three
set /a variable%variableone%four+=(2*(!variable%variabletwo%five!-!!variable%variablethree%six!))
echo !variable%variableone%four!
set var

现在对我来说,回显的是-8等于 14+(2*(25-36))

所以 - 对我有用!

于 2013-11-07T04:39:11.703 回答