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

回复 11楼 的帖子

恩,当时没有想那么多,多谢提醒。

TOP

::乘除交换
@echo off
set a=2
set b=4
set /a a*=%b%
set /a b=%a%/%b%
set /a a/=%b%
echo %a%   %b%
pause<nul


如果a和b中至少有一个为0,怎么办?

TOP

  1. @echo off
  2. set a=%random% & set b=%random%
  3. echo a=%a%
  4. echo b=%b%
  5. echo.
  6. set a=%b% & set b=%a%
  7. echo a=%a%
  8. echo b=%b%
  9. pause
复制代码
利用批处理执行命令时候的预处理来交换变量

[ 本帖最后由 jsj30651 于 2008-12-4 18:50 编辑 ]

TOP

通过变量交换比较常见,交换的方法很多,加减,乘除,异或.......
  1. ::加减交换
  2. @echo off
  3. set a=2
  4. set b=4
  5. set /a a+=%b%
  6. set /a b=%a%-%b%
  7. set /a a-=%b%
  8. echo %a%   %b%
  9. pause<nul
复制代码
  1. ::乘除交换
  2. @echo off
  3. set a=2
  4. set b=4
  5. set /a a*=%b%
  6. set /a b=%a%/%b%
  7. set /a a/=%b%
  8. echo %a%   %b%
  9. pause<nul
复制代码
1

评分人数

TOP

  1. @echo off
  2. set a=2
  3. set b=3
  4. set /a a=b+(b=a)*0
  5. echo %a%
  6. echo %b%
  7. pause
复制代码
1

评分人数

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

TOP

  1. @echo off
  2. Set "a=%random%" & set "b=%random%"
  3. echo %a% %b%
  4. set /a b=%a%,a=%b%
  5. echo %a% %b%
  6. pause
  7. Set "a=%random%" & set "b=%random%"
  8. echo %a% %b%
  9. set /a b=a,a=b
  10. echo %a% %b%
  11. pause
复制代码
希望可以通过如上代码了解到set /a的特性。
1

评分人数

    • rat: 不知道PB + 3
心绪平和,眼藏静谧。

TOP

原帖由 qq641255849 于 2008-11-26 13:16 发表
set /a 行不?

───────────────── 版主回复 ─────────────────
执行:wxcute
回复:[2008-11-26] 可以试一下,答错也没有关系的。
───────────────── 版 ...


原因是没在windows下,没法测试...
for /f "delims=" %%a in ('%0') do (echo %%a)

TOP

只要明白set /a的特性就能简洁明了的解答此题了。
  1. If you use any of the logical or modulus operators, you will need to
  2. enclose the expression string in quotes.  Any non-numeric strings in the
  3. expression are treated as environment variable names whose values are
  4. converted to numbers before using them.  If an environment variable name
  5. is specified but is not defined in the current environment, then a value
  6. of zero is used.  This allows you to do arithmetic with environment
  7. variable values without having to type all those % signs to get their
  8. values.
复制代码
心绪平和,眼藏静谧。

TOP

看我这个行不行

  1. @echo off
  2. echo 请输第一个数字
  3. set/p a=
  4. echo a=%a%
  5. echo 请输第二个数字
  6. set/p b=
  7. echo b=%b%
  8. echo 开始转换 pause
  9. set /a c=%a%
  10. set /a a=%b%
  11. set /a b=%c%
  12. echo 转换结束
  13. echo a=%a%
  14. echo b=%b%
复制代码

[ 本帖最后由 hxf0759 于 2008-11-27 09:21 编辑 ]
1

评分人数

    • wxcute: GOOD,不过请用 code 括起代码PB + 5

TOP

set /a 行不?

───────────────── 版主回复 ─────────────────
执行:wxcute
回复:[2008-11-26] 可以试一下,答错也没有关系的。
───────────────── 版主回复 ─────────────────

TOP

返回列表