정렬

2015-01-21 1 views
0

나는 버전 이름 .SQL 파일의 목록을정렬

EG :
5.1.9.5.sql
5.2.1.5.sql
5.5.1.7.sql
5.10 .6.2.sql

그러나 사용하여 전체를 반복 할 때 :

for %%i in (*.sql) do (
    echo %%i 
) 

그들은 다음과 같은 순서로 나올 :
01 23,516,5.1.9.5.sql
5.10.6.2.sql
5.2.1.5.sql
5.5.1.7.sql

그들처럼 먼저 나열 순서에 나올 얻을 방법이 있나요 Windows 파일 시스템? 모든 파일의 이름을 바꾸지 않아도됩니다.

+0

첫 번째 순서는 분명히 "올바른"순서가 아닙니다. - 어휘 적으로 5.10은 5.2보다 작습니다. – Arvo

+0

이것을 반영하도록 질문을 수정하십시오. – Martin

답변

1

파일을 생성 날짜별로 정렬하여 문제를 정렬 할 수있었습니다.

for /f %%i in ('dir /b /o:d *.sql') do (
    echo %%i 
) 
+0

관심 출시가 관례대로 숫자를 증가시키기 때문에 작동합니다. 다음 주 릴리스 이후에 이전 버전 (예 : 4.8.5.3.sql)의 유지 관리 릴리스가 나타나는 경우 중단됩니다. – Magoo

0

만약 당신이 어느 파일의 생성 날짜 나 파일을 마지막으로 수정 한 날짜 도움이, 당신은 내 JSORT.BAT utility을 사용할 수있는 위치에 자신을 발견합니다. 어휘 적으로 대신 숫자를 정렬하는/N 옵션이있는 하이브리드 JScript/배치 스크립트입니다. 이 유틸리티는 XP 이후의 모든 Windows 시스템에서 기본적으로 실행되는 순수한 스크립트입니다.

for /f %%F in ('dir /b /a-d *.sql^|jsort /n') do (
    echo %%F 
)