DIR 按文件名中数字大小进行排序

@echo off
set arg=%1
if "%arg%" == "" set arg=*
if "%arg%" == "-h" (
  echo sort by numbers in filename
  echo usage: nsort [drive:][path][filename]
  exit /b
)

setlocal EnableExtensions
for /F "delims=" %%I in (‘dir %arg% /A-D /B /ON 2^>nul‘) do call :AddToFileList "%%I"
for /F "tokens=1* delims==" %%I in (‘set FileList[ 2^>nul‘) do echo %%J
endlocal
exit /B

:AddToFileList
set "FileName=%~n1"
if "%FileName%" == "" set "FileName=%~x1"
set "FileNumber="

:GetFileNumber
for /F "delims=0123456789" %%I in ("%FileName:~-1%") do goto AddFileToArray
set "FileNumber=%FileName:~-1%%FileNumber%"
set "FileName=%FileName:~0,-1%"
if not "%FileName%" == "" goto GetFileNumber

:AddFileToArray
set "FileNumber=00000%FileNumber%"
set "FileNumber=%FileNumber:~-5%"
set "FileList[%FileName%_%FileNumber%]=%~1"
goto :EOF

nsort.7z

时间: 2024-10-19 10:43:13

DIR 按文件名中数字大小进行排序的相关文章

16.数字大小升降排序编写

数字大小升降排序编写输入描述: 输入为: 1. 排序方式:DESC(降序) ASCE(升序),分别表示按降序和升序排列,大小写不敏感 2. 一组十进制整数字符串,以","符号作为分隔符 例子: DESC 789,123,456 ASCE 234,567,89 排序方式DESC ASCE请忽略大小写 输出描述: 按指定排序方式排序后得到的十进制整数字符串: 输出的数字字符串数组,以","字符作为分隔符. 示例1 输入:ASCE 789,123,456 输出:123,4

解决java中按照数字大小来排序文件

我们想要输出(1.jpg.2.jpg.3.jpg.10.jpg.11.jpg.20.jpg.21.jpg.31.jpg) 突然看到网上一些写法 总结:既然自己按照定义的文件名规则来处理,也可以进行使用正则表达,简化使用 1 File[] files = file.listFiles(); 2 if(files==null)return resultFileName; 3 List<File> fileList = new ArrayList<File>(); 4 for (File

key值为数字字符的对象,按数字大小顺序排序|自定义obj.sort函数|为对象排序

var helper = { sort:function(data){ //{“20141216”:{},“20141217”:{}}按大小排序, var arr1 = [],arr2=[],self = this; for(var key in data){ arr1.push(key); } arr1.sort(); for(var i=0;i<arr1.length;i++){ var date = arr1[i]; var o = self._clone(data[date]); o.d

数字择优( 计算一个数与一组数字中的哪一个数字大小最接近)

一,应用场景 应需求根据两组经纬度计算出B点相对于A点的角度后,根据这个角度在一组预置点中选取最近的一个预置点 二,代码部分 1 /** 2 * 计算一个数与一组数字中的哪一个数字大小最接近 3 * @param re 4 * @param ble 5 * @return 6 */ 7 public static int choicePreset(int[] re,int ble) { 8 //1.存差值的绝对值 9 int[] result=new int[re.length]; 10 //2

按照字符串中的数组进行排序的方法(python)

有时候处理数据时,想要按照字符串中的数字的大小进行排序. 譬如,存在一组记录文件,分别为'1.dat','2.dat'... 当我把该文件夹中的所有记录文件名读到一个列表中,这些字符串的排列方式为: 如何让这些字符串按照数字排列? 1.首先通过正则表达式,提取出字符串中的数字 2.排序,选择built-in函数sorted进行排序 sorted(iterable, cmp=None, key=None, reverse=False) iterable:是可迭代类型;cmp:用于比较的函数,比较什

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

js中的数组对象排序

一.普通数组排序 js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: var arr = ["a", "b", "A", "B"]; arr.sort(); console.log(arr);//["A", "B", "a", "b"

具体解释Redis源代码中的部分高速排序算法(pqsort.c)

看标题.你可能会疑惑:咦?你这家伙.怎么不解说完整的快排,仅仅讲一部分快排---.- 哎,冤枉. "部分快排"是算法的名字.实际上本文相当具体呢.本文差点儿与普通快排无异.看懂了本文,你对普通的快排也会有更深的认识了. 高速排序算法(qsort)的原理我们大都应该了解.本文介绍的是部分高速排序算法. 事实上其算法本质是一样的,仅仅只是限定了排序的左右区间.也就是仅仅对一个数字序列的一部分进行排序.故称为"部分高速排序算法".简称:pqsort Redis项目中的pq

JS数组去重,js中数组(Array)的排序(sort)

JS数组去重 var ddd = [1,2,4,5,2, 222,1,5,6]; var uq = {}; var rq = []; for(var i=0; i<9; i++){ if(!uq[ddd[i]]){ uq[ddd[i]] = true; rq.push(ddd[i]); } } return rq; js中数组(Array)的排序(sort)注意事项 var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrD