В настоящее время нет встроенных инструментов командной строки, которые могут сортировать естественным образом. Если вы хотите, проголосуйте за функцию , чтобы заставить 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?
Собственное пакетное решение можно найти в
Естественно сортировать файлы в пакете , если ваши файлы имеют только один номер в конце
@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