[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
@echo off
set/p a=请输入a的数值 & set/p b=请输入b的数值
echo a是%a%
echo b是%b%
goto x
set/p a=%b% & set/p b=%a%
:x
echo ab交换后a是%b%
echo ab交换后b是%a%
pause

TOP

xchg指令

  1. @echo off
  2. set a=2
  3. set b=3
  4. (echo a100&echo mov ax,%a%&echo mov bx,%b%&more /e +5 "%~f0")|debug|find /v ""
  5. pause&exit/b
  6. xchg ax,bx
  7. t=100 3
  8. q
复制代码

TOP

  1. @echo off
  2. set /a a=5
  3. set /a b=3
  4. set /a a=%a%+%b%
  5. set /a b=%a%-%b%
  6. set /a a=%a%-%b%
  7. echo %a%
  8. echo %b%
  9. pause
复制代码
1

评分人数

    • wxcute: 加减交换法,还是很好的。PB + 2

TOP

刚发现我跟9楼的一样  
同时佩服8楼  这个代码最好

TOP

根据8楼的启发   发现这样也行
  1. @echo off
  2. set /a a=5
  3. set /a b=3
  4. for /l %%i in (1,1,1) do set a=%b%&set b=%a%
  5. echo %a%
  6. echo %b%
  7. pause
复制代码
跟变量延迟一个道理  吼吼  能不能给我点分呀
1

评分人数

    • wxcute: 何必拿个FOR来掩人耳目呢,你没发现它很多余 ...PB + 1

TOP

%E5%9B%9E%E5%A4%8D 21楼 %E7%9A%84%E5%B8%96%E5%AD%90

学习中…………………

TOP

很好!!有的真的有意思!

TOP

数值交换
@echo off&set/a A=2,B=3
set/a A=B,B=%A%
echo A=%A% , B=%B%&pause>nul


任何变量
@echo off&set A=上 &set B=下
set A=%B% &set B=%A%
echo A=%A% , B=%B% &pause>nul
1

评分人数

    • wxcute: 鼓励一下,不错。PB + 1

TOP

巧解

@echo off
set /p a=请输入a:
set /p b=请输入b:
set a=%b% & set b=%a%
echo a=%a% b=%b%
pause>nul
里面涉及到变量延迟,我就不过多解释了,有兴趣有多找些相关资料学习
1

评分人数

    • wxcute: 请用CODE将代码闭合,方便他人复制阅读。[q ...PB + 1

TOP

一般解

@echo off
set /p a=请输入a:
set /p b=请输入b:
set /a a+=%b%
set /a b=%a%-%b%
set /a a-=%b%
echo a=%a% b=%b%
pause>nul
此程序只能a,b是数值时可行,有字母就不行,上面的程序却无论a,b是数值还是字母,甚至两者混合都可行

TOP

  1. @echo off
  2. set a=2
  3. set b=3
  4. set a=%b% & set b=%a%
  5. echo a变为%a% b变为%b%
  6. pause
复制代码
噢,24,25楼的用了

TOP

@echo off
set a=2
set b=3
set a=%b% & set b=%a%
echo %a% & echo %b%
pause

只要用上管道,由于预处理  好象就可以了……

TOP

回复 28楼 loop3231262 的帖子

管道在哪里? 不是连接符吗?
批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

@echo off
set/p a=请输入a:
set/p b=请输入b:
set c=0
set /a c=%a%
set /a a=%b%
set /a b=%c%

echo %a% %b%
pause
1

评分人数

    • wxcute: 中间变量法,鼓励一下。PB + 1

TOP

回复 7楼 的帖子

  1. Set "a=%random%" & set "b=%random%"
  2. echo %a% %b%
  3. set /a b=a,a=b
  4. echo %a% %b%
复制代码
好像应该是set/a b=%a%,a=%b%吧,,好像少了%%号
1

评分人数

    • wxcute: 观察很仔细,谢谢指正。PB + 1

TOP

返回列表