标题: [数值计算] 字符是否可以参加运算? [打印本页]
作者: ibm 时间: 2008-9-18 16:45 标题: 字符是否可以参加运算?
在命令行下,字符是否也可以参加运算:
例:变量Var的初值是A,想得到B
Var=A++
该如何实现?
再如:变量Menu的初值是MenuA,想得到MenuB,该如何实现?
谢谢!
作者: pusofalse 时间: 2008-9-18 16:48
自己看吧。- () - 分组
- ! ~ - - 一元运算符
- * / % - 算数运算符
- + - - 算数运算符
- << >> - 逻辑移位
- - 按位“与”
- ^ - 按位“异”
- | - 按位“或”
- = *= /= %= += -= - 赋值
- &= ^= |= <<= >>=
- , - 表达式分隔符
-
- 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用
- 引号扩起来。在表达式中的任何非数字字符串键作为环境变量
- 名称,这些环境变量名称的值已在使用前转换成数字。如果指定
- 了一个环境变量名称,但未在当前环境中定义,那么值将被定为
- 零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
- 来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
- 那么它显示该表达式的最后值。该分配的操作符在分配的操作符
- 左边需要一个环境变量名称。除十六进制有 0x 前缀, 八进制
- 有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022
- 相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
- 因为 8 和 9 不是有效的八进制位数。
复制代码
作者: namejm 时间: 2008-9-18 16:49
批处理只支持数值运算,不支持字符运算。
作者: ibm 时间: 2008-9-18 16:54
变量Menu的初值是MenuA,想得到MenuB,该如何实现?
那我提出的问题就是说不能解决了吗?
[ 本帖最后由 ibm 于 2008-9-18 16:55 编辑 ]
作者: namejm 时间: 2008-9-18 17:01
那要看你的meunA和meunB这两个字符串有什么样的对应关系,一般可以通过if语句转化的,不必强求用字符运算来解决。
作者: lovelymorning 时间: 2008-9-18 17:43
反问一下楼主:
那请你用你的脑运算一下,怎样运算,才能将 meunA 变成 meunB
作者: ibm 时间: 2008-9-18 21:34
不是将meunA 变成 meunB
而是:
第一步:menuA赋值给menu,然后处理,
第二步:menub赋值给menu,然后处理,
…………
作者: shqf 时间: 2008-9-18 22:26
那就用两个SET赋值。但这…实在不懂楼主的意思了
作者: everest79 时间: 2008-9-19 07:38
- @echo off
- for /l %%i in (1,1,5) do set /a menu%%i=%%i*10
- for /l %%i in (1,1,5) do (
- set /a A+=1
- call call echo %%%%menu%%a%%%%%%
- )
- pause
复制代码
作者: ibm 时间: 2008-9-21 13:05
楼上的才是我真正想要的,谢谢!
但还有个问题,不知道为什么要加那多么的[ % ]?
[ 本帖最后由 ibm 于 2008-9-21 13:08 编辑 ]
作者: Batcher 时间: 2008-9-21 13:10 标题: 回复 10楼 的帖子
变量延迟详解
http://www.cn-dos.net/forum/viewthread.php?tid=28273
什么情况下该使用变量延迟
http://www.cn-dos.net/forum/viewthread.php?tid=20733
一个变量嵌套变量的问题
http://www.cn-dos.net/forum/viewthread.php?tid=41143
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |