Board logo

标题: [文本处理] [已解决]批处理怎样给字母或数字排序? [打印本页]

作者: freesoft00    时间: 2015-12-16 10:42     标题: [已解决]批处理怎样给字母或数字排序?

本帖最后由 pcl_test 于 2016-7-12 17:06 编辑

批处理中有这样的一个变量
set ww=defhcb
或者是set ww=d e f h c b
如果按26个字母的顺序排列位如下结果(再增加字母也可以按这个要求排序):
bcdefh
b c d e f h

通用的类似问题,
纯数字如何排序
set ww=95437
set ww=9 5 4 3 7
执行后显示为从小达到
34579
3 4 5 7 9
作者: pcl_test    时间: 2015-12-16 11:54

  1. /*&cls
  2. @echo off
  3. set str1=defhcb
  4. set str2=d e f h c b
  5. set str3=95437
  6. set str4=9 5 4 3 7
  7. cscript -nologo -e:jscript "%~f0" "%str1%" "%str2%" "%str3%" "%str4%"
  8. pause & exit/b
  9. */
  10. WSH.echo(WScript.Arguments(0).split('').sort().join(''))
  11. WSH.echo(WScript.Arguments(1).split(' ').sort().join(' '))
  12. WSH.echo(WScript.Arguments(2).split('').sort().join(''))
  13. WSH.echo(WScript.Arguments(3).split(' ').sort(function(a,b){return a-b}).join(' '))
复制代码

作者: freesoft00    时间: 2015-12-17 17:21

回复 2# pcl_test


    再请教一下纯批处理是否可以办到
作者: pcl_test    时间: 2015-12-17 17:39

回复 3# freesoft00


    举个栗子
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (d e f h c b) do set #%%a=%%a
  4. set #
  5. for %%a in (11 2 9 0 34 6) do (
  6.     set n=000000000000%%a
  7.     set _!n:~-10!=%%a
  8. )
  9. set _
  10. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2