1

次のファイルのリストを並べ替えようとしています

C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00010-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00011-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00012-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00013-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00014-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00015-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00016-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0001-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0002-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0003-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0004-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0005-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0006-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0007-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0008-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0009-R.xml

ご覧のとおり、10、11、12 ..... から始まり、1 に戻ります。

この正しい順序で並べ替えるにはどうすればよいですか?

  C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0001-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0002-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0003-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0004-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0005-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0006-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0007-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0008-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0009-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00010-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00011-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00012-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00013-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00014-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00015-R.xml
    C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00016-R.xml

バッチ ファイルや単純なコードを使用することもできます。

ありがとうございました。

編集:

次のコマンドを使用してファイルを読み取りました

echo off
for /r %%a in (*.xml) do echo %%a >> get_files.txt
4

5 に答える 5

2

プロンプトでバッチワンライナーを使用するだけcmdです:

for /f "tokens=1*" %x in ('(for %a in ("C:\DOCUMENTS\FLUX Melange\MultiXml\*.xml"^) do @for /f "tokens=3 delims=-" %b in ("%~na"^) do @for /f "tokens=* delims=0" %c in ("%~b"^) do @set "sorty=000%c"^&call set "sorty=%sorty:~-4%"^&call echo %sorty% %a^)^|sort') do @echo %y

注: これは XP では動作しない可能性があり、まだテストされていません。

于 2013-09-24T16:34:24.820 に答える
1

他の回答は、名前のリストを並べ替えます。これは、ファイルを順番にソートするたびにプログラムを実行する必要があることを意味します。以下のバッチ プログラムはファイルの名前を変更するため、1 回実行するだけで、アクセス方法に関係なく、ファイルがソートされて表示されます。

@echo off
setlocal EnableDelayedExpansion
for /F "tokens=1-4 delims=-" %%a in ('dir /B /S /A-D *.xml') do (
   set number=%%c
   if "!number:~4!" equ "" (
      set pth=%%a
      ren "%%a-%%b-%%c-%%d" "!pth:~-3!-%%b-0%%c-%%d"
   )
)
于 2013-09-24T15:49:54.913 に答える
1

このバッチは、files.tx0(with ##### filename) を作成し、次にfiles.tx1(ordered ) を作成してから、 からまでfiles.tx0のファイル部分を読み取ります。files.tx1files.txt

DEL files.tx0
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /R %%a IN (*.xml) DO FOR /F "DELIMS=- TOKENS=3" %%b IN ("%%~na") DO (
    SET N=0%%b
    ECHO !N:~-5! %%a>>files.tx0
)
SORT files.tx0 >files.tx1
DEL files.txt
FOR /F "TOKENS=1,*" %%i IN (files.tx1) DO >>files.txt ECHO %%j
于 2013-09-24T15:19:44.433 に答える
1

どうぞ!(Linuxのみ)

sort -t $'-' -k3 -n file.txt

出力:

# sort -t $'-' -k3 -n file.txt
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0001-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0002-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0003-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0004-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0005-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0006-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0007-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0008-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-0009-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00010-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00011-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00012-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00013-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00014-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00015-R.xml
C:\DOCUMENTS\FLUX Melange\MultiXml\ACC-BANQUE_76401-00016-R.xml

ファイルを保存 (を使用して出力をリダイレクト>)

sort -t $'-' -k3 -n file.txt > new_formated_file
于 2013-09-24T14:45:31.447 に答える
1

最初のリストは辞書順でソートされています。

ファイルにゼロをもう 1 つ追加できます[1..9]か?

を使用するとcmddir /Oファイルが辞書順に並べ替えられます。

于 2013-09-24T14:34:58.510 に答える