我有一个包含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
我想按最小到最大的块大小对它们进行排序。有什么想法吗?
编辑:我还必须保持文件名的完整性,因为我然后调用另一个使用文件名并创建字符串的脚本。
答案 0 :(得分:3)
Take Command - CMD.EXE替换具有自然排序。
如果你可以用零填充文件名,那么正常的排序将使它们恢复正常。
此代码将以数字方式返回它们:
@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