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

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

  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个变量没用其他运算符,而是空格

我错了 code怎么不起作用啊

TOP

  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个变量没用其他运算符,而是空格

TOP

因为这个不是算术运算,就是两变量叠加
比如set str=!str! !a_%%i!
str的值是5 ,  a_4的值是8
结果str的值就是5 8
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!

TOP

...
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!
601997526 发表于 2011-6-1 19:49


set /? 中的帮助:
在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。

TOP

2# chris521crystal
code 貌似你少了[]
  1. echo 例子
复制代码

TOP

5# tmplinshi
不错,这个以前还不知道,学习了

TOP

这个纯粹是字符串连接哟,哪里需要什么运算符呀

TOP

返回列表