Sorting 自然地对文件进行批排序
我有一个包含20多个文件的文件夹,我想像Windows资源管理器那样对它们进行排序。我所有的文件都有块大小的前缀,如下所示:Sorting 自然地对文件进行批排序,sorting,batch-file,Sorting,Batch File,我有一个包含20多个文件的文件夹,我想像Windows资源管理器那样对它们进行排序。我所有的文件都有块大小的前缀,如下所示: 1024KB.log 32KB.log 64KB.log 4KB.log 256KB.log 512KB.log 但当我对它们进行批量排序时,它只会查看第一个数字,然后按如下方式对它们进行排序: 1024KB.log 256KB.log 32KB.log 4KB.log 512KB.log 64KB.log 我想按最小到最大的块大小对它们进行排序。有什么想法吗 编辑:
1024KB.log
32KB.log
64KB.log
4KB.log
256KB.log
512KB.log
但当我对它们进行批量排序时,它只会查看第一个数字,然后按如下方式对它们进行排序:
1024KB.log
256KB.log
32KB.log
4KB.log
512KB.log
64KB.log
我想按最小到最大的块大小对它们进行排序。有什么想法吗
编辑:我还必须保持文件名的完整性,因为我随后调用另一个使用文件名并创建字符串的脚本。Take命令-CMD.EXE替换具有自然排序 如果可以用零填充文件名,则正常排序将返回ok 此代码将返回按数字排序的数据:
@echo off
type nul>1024KB.log
type nul>32KB.log
type nul>64KB.log
type nul>4KB.log
type nul>256KB.log
type nul>512KB.log
setlocal enabledelayedexpansion
for %%a in (*.log) do (
set num=0000000000%%a
set num=!num:~-14!
set $!num!=%%a
)
for /f "tokens=1,* delims==" %%a in ('set $0') do echo %%b
pause
您可以结合数字排序。关于这一点,问题有点不清楚,但如果文件名类似于
20M.log
?@Danstahr,该怎么办?这是一个有效点。我刚刚注意到一些文件名的后缀是K,在所需的列表中它们显示为KB。这是一个很好的观点。您上面发布的转换可以工作,但我如何使用数字排序。它不会做同样的事情吗?只有KB后缀吗?@foxidrive是的,我相信只有KB后缀