变量之后是否可以存储变量的先前值?

时间:2015-02-18 18:34:27

标签: windows batch-file

我最近一直在玩批处理,我正在尝试编写一个存储每个生成值的生成器。

生成器位于一个标签中:

:gene2
  set /a wid= %RANDOM% * (%maxval% - %minval% + 1) / 32768 + %minval%
  set /a hei= %RANDOM% * (%maxval% - %minval% + 1) / 32768 + %minval%
  set /a dep= %RANDOM% * (%maxval% - %minval% + 1) / 32768 + %minval%
  set /a vol= %wid% * %hei% * %dep%
  set /a flo= %wid% * %dep%

假设生成器能够运行5次并记住%vol%的每个数字生成器。 在生成器重置之前如何存储%vol%的值?因为当完成所有5个结果(%vol1%%vol5%)时,它们的值都与生成的第一个值相同。

1 个答案:

答案 0 :(得分:0)

我不确定%vol1%到%vol5%是什么意思,因为我没有看到这些变量或者你是怎样的"存储"他们。

但是,如果通过单击同一个批处理文件调用此批处理文件5次。然后,每次批处理文件位于不同的cmd会话中时,变量中设置的值都将丢失。

为了跟踪生成的变量,我建议将它们写入文件以便以后检索。

您可以执行类似

的操作
set /a vol= %wid% * %hei% * %dep% 
echo %vol%>>C:\MyVars\vols.txt 

如果您使用">>"您将附加文件,或者您可以使用">"在每次运行时覆盖该文件。

在批处理文件的开头读取vols.txt文件,如

set /p Vol=<C:\MyVars\vols.txt

然后您在下一个会话中获得之前的卷值。

如果您添加有关您要实现的目标的更多信息,我可以提供更多帮助。