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

[ 新手习题 1 ] 批处理数值型变量的交换

我们假设值为数字的变量为数值型变量。
那么如何交换两个不确定的数值型变量呢?
如:
set a=2
set b=3
因为 a 不一定等于 2,b 不一定等于 3,所以不能用 set a=3 与 set b=2 这种方式来交换。

目的:掌握对数值型变量的交换设置方法。

要求:交换并显示变量 a、b,方法不限。

评分:代码可读性 1 分;
   首个新方法 5 分,第二个 4 分,依次类推,最少 2 分;
   一人多种方法,新方法追加 3 分,已经出现过的方法追加 1 分。

回复 1# wxcute
  1. set a=2
  2. set b=3
  3. set bf=b
  4. set af=a
  5. set a=bf
  6. set b=af
复制代码

TOP

@echo off
set /P "a=输入变量a="
set /p "b=输入变量b="
set /a c=%a%
set /a a=%b%
set /a b=%c%
echo a=%a%
echo b=%b%
pause

TOP

@echo off
set a=2
set b=3
echo %a% %b%
set c=%a%
set a=%b%
set b=%c%
echo %a% %b%
pause>nul

TOP

  1. @echo off
  2. set a=2 && set b=3
  3. set /a b=%a% && set /a a=%b%
  4. echo %a% %b%
  5. pause
复制代码

TOP

回复 7# Batcher


    这是什么啊?完全看不懂啊!!

TOP

  1. set a=2
  2. set b=3
  3. echo a=%a% b=%b%
  4. echo 交换后
  5. set/a c=%a%*%b%
  6. set a=%b%
  7. set/a b=%c%/%a%
  8. echo a=%a% b=%b%
复制代码

TOP

本帖最后由 Lornan 于 2015-5-26 21:43 编辑
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. ::CODER BY Lornan POWERD BY iBAT 1.6
  4. set /p a=请输入第一个数字:
  5. set /p b=请输入第二个数字:
  6. echo.请按任意键继续&pause>nul
  7. cls
  8. echo.
  9. echo.你输入的a是%a%
  10. echo.你输入的b是%b%
  11. echo.按任意键开始交换a与b的值。
  12. echo.&pause>nul
  13. set c=%a%
  14. set a=%b%
  15. set b=%c%
  16. echo.交换完毕。按任意键查看。
  17. echo.&pause>nul
  18. cls
  19. echo.现在a的值是%a%,b的值是%b%.
  20. pause
复制代码
感觉应该没问题吧。最近C语言老师逼的。总是把C语言的东西用在批处理上来。。。
Cease to struggle and you cease to live.

TOP

谢谢!   第一个批处理诞生

TOP

  1. @echo off
  2. set /a a=%random%%%10
  3. echo %a%
  4. set /a b=%random%%%9
  5. echo %b%
  6. set c=%a%
  7. set d=%b%
  8. set b=%c%
  9. set a=%d%
  10. echo %a%
  11. echo %b%
  12. pause
复制代码

TOP

学习了。。。。。

TOP

@echo off
set /p x=请输入a的值
set /p y=请输入b的值
echo 您输入的a的信息是%x%
echo 您输入的b的信息是%y%
echo 开始转换
set a=%y%
set b=%x%
echo 转换之后a的信息是%a%
echo 转换之后b的信息是%b%
pause

简化的
@echo off
set /p x=请输入a的值
set /p y=请输入y的值
echo 您输入的a的值是%x%
echo 您输入的b的值是%y%
echo 转换之后您输入的a的值是%y%
echo 转换之后您输入的b的值是%x%
pause

TOP

  1. @echo off
  2. ::交换变量a,b的值
  3. set /p a=请输入a=
  4. set /p b=请输入b=
  5. set a=%b%&set b=%a%
  6. echo 交换数值后,a=%a%,b=%b%
  7. pause
复制代码

TOP

  1. @echo off
  2. rem 交换前的赋值
  3. set a=%random%
  4. set b=%random%
  5. echo 交换前:a=%a%,b=%b%
  6. echo.
  7. rem 交换后的结果
  8. set temp=%a%
  9. set a=%b%
  10. set b=%temp%
  11. echo 交换后:a=%a%,b=%b%
  12. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=请输入变量a的值:
  4. set /p b=请输入变量b的值:
  5. for /f "delims=# tokens=1-3 eol=" %%a in ('echo !b!#!a!') do (
  6. set a=%%a
  7. set b=%%b
  8. goto:end
  9. )
  10. :end
  11. echo a=!a!
  12. echo b=!b!
  13. pause>nul
复制代码
变量a和b中不能含有#号,其他都可以。

TOP

返回列表