[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 字符是否可以参加运算?

在命令行下,字符是否也可以参加运算:

例:变量Var的初值是A,想得到B
Var=A++
该如何实现?

再如:变量Menu的初值是MenuA,想得到MenuB,该如何实现?

谢谢!

自己看吧。
  1.     ()                  - 分组
  2.     ! ~ -               - 一元运算符
  3.     * / %               - 算数运算符
  4.     + -                 - 算数运算符
  5.     << >>               - 逻辑移位
  6.                        - 按位“与”
  7.     ^                   - 按位“异”
  8.     |                   - 按位“或”
  9.     = *= /= %= += -=    - 赋值
  10.       &= ^= |= <<= >>=
  11.     ,                   - 表达式分隔符
  12. 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用
  13. 引号扩起来。在表达式中的任何非数字字符串键作为环境变量
  14. 名称,这些环境变量名称的值已在使用前转换成数字。如果指定
  15. 了一个环境变量名称,但未在当前环境中定义,那么值将被定为
  16. 零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
  17. 来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
  18. 那么它显示该表达式的最后值。该分配的操作符在分配的操作符
  19. 左边需要一个环境变量名称。除十六进制有 0x 前缀, 八进制
  20. 有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022
  21. 相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
  22. 因为 8 和 9 不是有效的八进制位数。
复制代码
心绪平和,眼藏静谧。

TOP

  批处理只支持数值运算,不支持字符运算。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

变量Menu的初值是MenuA,想得到MenuB,该如何实现?



那我提出的问题就是说不能解决了吗?

[ 本帖最后由 ibm 于 2008-9-18 16:55 编辑 ]

TOP

  那要看你的meunA和meunB这两个字符串有什么样的对应关系,一般可以通过if语句转化的,不必强求用字符运算来解决。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

反问一下楼主:
那请你用你的脑运算一下,怎样运算,才能将 meunA 变成 meunB

TOP

不是将meunA 变成 meunB
而是:
第一步:menuA赋值给menu,然后处理,
第二步:menub赋值给menu,然后处理,
…………

TOP

那就用两个SET赋值。但这…实在不懂楼主的意思了

TOP

  1. @echo off
  2. for /l %%i in (1,1,5) do set  /a menu%%i=%%i*10
  3. for /l %%i in (1,1,5) do (
  4. set /a A+=1
  5. call call echo %%%%menu%%a%%%%%%
  6. )
  7. pause
复制代码

TOP

楼上的才是我真正想要的,谢谢!

但还有个问题,不知道为什么要加那多么的[ % ]?

[ 本帖最后由 ibm 于 2008-9-21 13:08 编辑 ]

TOP

回复 10楼 的帖子

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表