![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 14:14 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]数值排序(难并已解) |
| 可打印版本 13,961 / 31 |
| 第1楼 bat-zw | 发表于 2008-04-29 22:22 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
[求助]数值排序(难并已解) 如有一列数值如:56 12 33 48 99 105 5 16
怎么通过批处理输出为:5 12 16 33 48 56 99 105 要求不生成任何临时文件。 ---------------------------------------------------------------------------------------------------------- 综合所有,本人的通用代码如下: 再扩展: [ Last edited by zw19750516 on 2008-5-4 at 09:20 PM ] |
|
| 第2楼 qingfushuan | 发表于 2008-04-29 22:40 |
| 高级用户 发帖 327 积分 502 | |
|
先弄清问题,你写的是一行啊 按小>大的顺序排列吧
|
|
| 第3楼 HAT | 发表于 2008-04-29 22:44 |
| 版主 发帖 5,017 积分 9,023 | |
|
纯P的话,我一般是先比较长度,如果长度相同再比较大小。
|
|
| 第4楼 bjsh | 发表于 2008-04-29 23:21 |
| 银牌会员 发帖 621 积分 2,000 | |
|
Linux
$ cat TEST 56 12 33 48 99 105 5 16 $ sort -n <TEST 5 12 16 33 48 56 99 105 |
|
| 第5楼 plp626 | 发表于 2008-04-29 23:34 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
版主也来凑热闹啦。。。
cmd就是没有shell强悍 |
|
| 第6楼 bat-zw | 发表于 2008-04-29 23:37 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
到目前还没有完善的答案!
|
|
| 第7楼 terse | 发表于 2008-04-29 23:56 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off&setlocal enabledelayedexpansion
set/p str=输入数字(用空格隔开) for %%i in (%str%) do ( set str=0000000000%%i set .!str:~-10! !random!=a ) for /f "delims=.= " %%i in ('set .') do for /f "tokens=* delims=0" %%i in ("%%i") do if "%%i"=="" (set/p=0 <nul) else set/p=%%i <nul pause>nul |
|
| 第8楼 plp626 | 发表于 2008-04-29 23:59 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
数字不是每行一个的,先用这个代码改为每行一个 [ Last edited by plp626 on 2008-4-30 at 01:41 PM ] |
|
| 第9楼 HAT | 发表于 2008-04-30 00:01 |
| 版主 发帖 5,017 积分 9,023 | |
|
不知道 s11ss 兄的排序算法能否满足楼主的需求
|
|
| 第10楼 bat-zw | 发表于 2008-04-30 00:04 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我只想了个通用性不是很强的: 郁闷啊,个位数不能有重复的:
|
|
| 第11楼 terse | 发表于 2008-04-30 00:11 |
| 银牌会员 发帖 946 积分 2,404 | |
|
我8楼的不合要求吗
set/p str=输入数字(用空格隔开) 改成 set "str=101 20 14 13 19 18 16 11 5" 应该可以的吧 |
|
| 第12楼 bat-zw | 发表于 2008-04-30 00:18 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by terse at 2008-4-30 00:11: terse八楼的代码太强了,说老实话,我现在还没看明白是怎么一回事,请terse兄弟能帮解释下啊! |
|
| 第13楼 HAT | 发表于 2008-04-30 00:32 |
| 版主 发帖 5,017 积分 9,023 | |
Originally posted by plp626 at 2008-4-30 12:04 AM: 这个不需要懂linux吧,只需要下载GNU的sort.exe然后在批处理中调用即可。 |
|
| 第14楼 pusofalse | 发表于 2008-04-30 00:39 |
| 银牌会员 发帖 646 积分 1,604 | |
Originally posted by terse at 2008-4-29 11:56 PM: 果真很强! 刚开始时没明白咋回事。。。 @echo off&setlocal enabledelayedexpansion把代码改成这样之后 有点开窍了。。 |
|
| 第15楼 zh159 | 发表于 2008-04-30 01:51 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
以前用过的,忘了出自哪里了
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |