因此,我制作了一个计算器,允许其用户命名其以前的结果以便在将来的计算中使用它们。它的工作原理是,当你给以前的结果命名时,它会创建一个名称被选中的变量,然后将其值设置为前一个结果。它看起来是这样的:批处理:获取另一个变量的值中存在的变量的值
set /p equation=
::variables need to be replaced here
set /a result=%equation%
::giving a name
set /p name=
set %name%=%result%
的问题是,我不能想出一个办法让方程中的变量的值,因为公式也是可变的,所以每当我在一个命令添加公式与%equation%
,它只是取代它像1+%named_result%
。有没有一种方法可以用同一个方程来转换方程,但是变量是用它们的值代替的? (set equation=%equation%
不工作)
阅读来自[delayedexpansion](http://ss64.com/nt/delayedexpansion.html )并使用call/for [强制另一个扩展](https://stackoverflow.com/questions/1199931/how-to-expand-ac md-shell-variable-twice-recursively) – LotPings
这不是必需的。出现在“SET/A”命令公式中的任何_variable name_自动被变量值替换。即'set equation = 1 + named_result' – Aacini