0

Windowsバッチスクリプトで、ファイル名のリストをバージョン番号でソートする必要があります。ファイル名は次のようになります。

2_0_0to2_0_1
2_0_1_to2_0_2
...
2_0_12_to2_0_13
...

Windows で dir と sort を試してみましたが、2 桁の場合は機能しない char の位置しか見ていないようです。Linux では、次のようにしてこれを行いました: ls *.txt | 並べ替え -n -t _ -k1 -k2 -k3. Windows でこれを行う方法。助けてください。ありがとう!

4

1 に答える 1

4

これを試して:

@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%x IN (*) DO (
    FOR /f "tokens=1-6delims=_to" %%a IN ("%%~x") DO (
        SET "g1=0%%a"
        SET "g2=0%%b"
        SET "g3=0%%c"
        SET "g4=0%%d"
        SET "g5=0%%e"
        SET "g6=0%%f"
        SET "$!g1:~-2!!g2:~-2!!g3:~-2!!g4:~-2!!g5:~-2!!g6:~-2!=%%~x"
    )
)
FOR /f "tokens=2delims==" %%a IN ('set "$"') DO ECHO %%~a
于 2013-07-26T14:30:50.090 に答える