标题: [数值计算] 批处理选择排序法中的set命令是什么意思? [打印本页]
作者: chris521crystal 时间: 2011-6-1 19:24 标题: 批处理选择排序法中的set命令是什么意思?
- @echo off
- setlocal enabledelayedexpansion
- ::选择排序法
- echo 共输入10个数
- for /l %%i in (1,1,10) do (
- set /p a_%%i=请输入%%i个数
- set str=!str! !a_%%i!
- )
- echo %str%
- for /l %%i in (1,1,10) do (
- set /a b=%%i+1
- for /l %%j in (!b!,1,10) do (
- if !a_%%i! gtr !a_%%j! (
- set /a t=a_%%i
- set /a a_%%i=a_%%j
- set /a a_%%j=t
- )
- )
- )
- for /l %%i in (1,1,10) do (
- set str1=!str1! !a_%%i!
- )
- echo %str1%
- pause>nul
复制代码
请问这行“set str=!str! !a_%%i!”命令中的“!str! !a_%%i!”
是什么意思啊 ?为什么有2个变量没用其他运算符,而是空格
作者: chris521crystal 时间: 2011-6-1 19:25
我错了 code怎么不起作用啊
作者: chris521crystal 时间: 2011-6-1 19:31
- @echo off
- setlocal enabledelayedexpansion
- ::选择排序法
- echo 共输入10个数
- for /l %%i in (1,1,10) do (
- set /p a_%%i=请输入%%i个数
- set str=!str! !a_%%i!
- )
- echo %str%
- for /l %%i in (1,1,10) do (
- set /a b=%%i+1
- for /l %%j in (!b!,1,10) do (
- if !a_%%i! gtr !a_%%j! (
- set /a t=a_%%i
- set /a a_%%i=a_%%j
- set /a a_%%j=t
- )
- )
- )
- for /l %%i in (1,1,10) do (
- set str1=!str1! !a_%%i!
- )
- echo %str1%
- pause>nul
复制代码
请问这行“set str=!str! !a_%%i!”命令中的“!str! !a_%%i!”
是什么意思啊 ?为什么有2个变量没用其他运算符,而是空格
作者: 601997526 时间: 2011-6-1 19:49
因为这个不是算术运算,就是两变量叠加
比如set str=!str! !a_%%i!
str的值是5 , a_4的值是8
结果str的值就是5 8
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!
作者: tmplinshi 时间: 2011-6-1 20:24
...
不过set /a a_%%j=t这句是不是写错了
应该是set /a a_%%j=!t!
601997526 发表于 2011-6-1 19:49
set /? 中的帮助:
在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。
作者: a382039369 时间: 2011-6-1 20:47
2# chris521crystal
code 貌似你少了[]复制代码
作者: 601997526 时间: 2011-6-1 23:39
5# tmplinshi
不错,这个以前还不知道,学习了
作者: applba 时间: 2011-6-2 00:13
这个纯粹是字符串连接哟,哪里需要什么运算符呀
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |