将变量设置为另一个带有数字+或 - 的变量

时间:2014-01-06 13:09:53

标签: batch-file

我正在批量编写程序。它必须采用一个变量,这是一个数字,并从该变量中加或减得到另一个数字。

我目前有:

set /A str="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3
set /A dex="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3
set /A con="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3
set /A int="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3
set /A wis="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3
set /A cha="%RANDOM% %% 6"+1+"%RANDOM% %% 6"+1+"%RANDOM% %% 6"+3 

set /a Data11="%str% %% 1"+2
set /a Data12=%dex%
set /a Data13="%con% %% 1"+2
set /a Data14="%int% %% 1"-2
set /a Data15=%wis%
set /a Data16=%cha%

不幸的是,它目前将Data11,13和14设置为+2或-2。

我希望它能够以这种方式工作,因此我可以对str,dex,ectra变量进行多种不同的更改,这些变量又取决于用户输入和选择。

如何让它按预期工作?

3 个答案:

答案 0 :(得分:2)

将Data11变量设置为str modulus 1,即0

答案 1 :(得分:1)

对于正常变量上的大多数算术或百分号,您不需要引号   - 我为此示例删除了%% 1

set /A str=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3
set /A dex=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3
set /A con=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3
set /A int=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3
set /A wis=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3
set /A cha=%RANDOM% %% 6+1+%RANDOM% %% 6+1+%RANDOM% %% 6+3 

set /a Data11=str + 2
set /a Data12=dex
set /a Data13=con + 2
set /a Data14=int - 2
set /a Data15=wis
set /a Data16=cha

set data
pause

答案 2 :(得分:0)

请注意,以下内容也有效:

SET/A Data11="str %% 2 + 2"
SET/A "Data11=str %% 2 + 2"
SET/A Data12=dex

SET/A temp=dex+1

更多信息和示例:

Microsoft

SS64.com