找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27263|回复: 7

[数值计算] 批处理选择排序法中的set命令是什么意思?

[复制链接]
发表于 2011-6-1 19:24:40 | 显示全部楼层 |阅读模式
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::选择排序法
  4. echo 共输入10个数
  5. for /l %%i in (1,1,10) do (
  6. set /p a_%%i=请输入%%i个数
  7. set str=!str! !a_%%i!
  8. )
  9. echo %str%
  10. for /l %%i in (1,1,10) do (
  11. set /a b=%%i+1
  12. for /l %%j in (!b!,1,10) do (
  13.    if !a_%%i! gtr !a_%%j! (
  14.       set /a t=a_%%i
  15.       set /a a_%%i=a_%%j
  16.       set /a a_%%j=t
  17.     )
  18. )
  19. )
  20. for /l %%i in (1,1,10) do (
  21. set str1=!str1! !a_%%i!
  22. )
  23. echo %str1%
  24. pause>nul
复制代码
请问这行“set str=!str! !a_%%i!”命令中的“!str! !a_%%i!”
是什么意思啊 ?为什么有2个变量没用其他运算符,而是空格
 楼主| 发表于 2011-6-1 19:25:14 | 显示全部楼层
我错了 code怎么不起作用啊
 楼主| 发表于 2011-6-1 19:31:01 | 显示全部楼层

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::选择排序法
  4. echo 共输入10个数
  5. for /l %%i in (1,1,10) do (
  6. set /p a_%%i=请输入%%i个数
  7. set str=!str! !a_%%i!
  8. )
  9. echo %str%
  10. for /l %%i in (1,1,10) do (
  11. set /a b=%%i+1
  12. for /l %%j in (!b!,1,10) do (
  13.    if !a_%%i! gtr !a_%%j! (
  14.       set /a t=a_%%i
  15.       set /a a_%%i=a_%%j
  16.       set /a a_%%j=t
  17.     )
  18. )
  19. )
  20. for /l %%i in (1,1,10) do (
  21. set str1=!str1! !a_%%i!
  22. )
  23. echo %str1%
  24. pause>nul
复制代码
请问这行“set str=!str! !a_%%i!”命令中的“!str! !a_%%i!”
是什么意思啊 ?为什么有2个变量没用其他运算符,而是空格
发表于 2011-6-1 19:49:44 | 显示全部楼层
因为这个不是算术运算,就是两变量叠加
比如set str=!str! !a_%%i!
str的值是5 ,  a_4的值是8
结果str的值就是5 8
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!
发表于 2011-6-1 20:24:08 | 显示全部楼层
...
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!
601997526 发表于 2011-6-1 19:49


set /? 中的帮助:
在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。
发表于 2011-6-1 20:47:14 | 显示全部楼层
2# chris521crystal
code 貌似你少了[]

  1. echo 例子
复制代码
发表于 2011-6-1 23:39:57 | 显示全部楼层
5# tmplinshi
不错,这个以前还不知道,学习了
发表于 2011-6-2 00:13:09 | 显示全部楼层
这个纯粹是字符串连接哟,哪里需要什么运算符呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:46 , Processed in 0.020729 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表