|
本帖最后由 lm959680 于 2009-5-22 16:40 编辑
从一个批处理过来的一句
@echo off
set compt=50
set /a swport=3260+(%compt%-1)/50*2
echo %swport%
pause
set加了一 /a 最要注意的一个词
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
- 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符
Local $swport,$compt
$compt=50
$swport=3260+($compt-1)/50*2
MsgBox(0, "", $compt&" "&Round($swport))
结果就不对了``
AU3结果3261
计算器 3260
批处理 3260
Local $swport,$compt
$compt=50
$swport=3260+($compt-1)/(50*2);加了括号
MsgBox(0, "", $compt&" "&Round($swport))
结果3260 结果又正确了???
将compt变量改成51 问题就又出来了
批处理的是 3262 ???
计算器 3260
乘法不带括号AU3 3262
乘法带括号AU3 3620
现在想请教的问题是
set /a swport=3260+(%compt%-1)/50*2
在AU3如何正确的表示。
请大家试了在回答。不然结果会不对批处理的结果的`~~、
每50算一个数
50
100
150
哦 忘了告诉 程序有多余的 迷惑下大家~~`
AU3的运算符 优先次序
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR |
|