在批处理里,将数字从小到大的排列,可以吗?
有5个数字
%num1%
%num2%
%num3%
%num4%
%num5%
如何让他们从小到大的排列并且打印在屏幕上呢?
参考答案:@echo off
::假设你的数字是以下这五个:
set num1=400
set num2=1
set num3=57
set num4=3
set num5=20000
::XP Cmd 自带的 sort 只能做字符排序,所以不同位数的数字必须右端对齐。
::最小和最大的数字相差 4 位数,所以往所有数字左边填 4 个空格,
::然后只输出右端的 5 个字符(最大的数字的位数)给 sort 排序。
set num1= %num1%
set num2= %num2%
set num3= %num3%
set num4= %num4%
set num5= %num5%
::sort 只能做行与行之间的排序,而 echo 一次只能输出一行,
::所以用括号把 5 个输出结合成一个 5 行的输出最方便。
(
echo %num1:~-5%
echo %num2:~-5%
echo %num3:~-5%
echo %num4:~-5%
echo %num5:~-5%
) | sort