それは自然な並べ替えと呼ばれます。現在、自然に並べ替えることができる組み込みのコマンド ライン ツールはありません。必要に応じて、Microsoft の考えを変える機能に投票してください
ただし、これは正規表現の置換を使用してシミュレートし、ゼロを埋めて数値を同じ長さにすることができます。このように、辞書式ソートは自然ソートと同等です。Windows では、Jscript と VBS を使用してそれを行うことができます。しかし、最も簡単な方法は、powershell を使用することです。このようにcmd.exeから呼び出すことができます
powershell -Command "(Get-ChildItem | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) }).Name"
もちろんPadLeft(20)
、ファイルに長い一連の数字が含まれている場合は、数字を変更する必要があります
Windows エクスプローラーと同じようにファイル名で並べ替えるには?
ファイルの末尾に数字が 1 つしかない場合、ネイティブ バッチ ソリューションは、
Naturally Sort Files in Batchにあります。
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do (
set num=00000000000000000000%%a
set num=!num:~-20!
set $!num!=%%a
)
for /f "tokens=1,* delims==" %%a in ('set $0') do echo %%b