1

「(date)(client)-(document Title).pdf」というラベルの付いた大量のファイルを.batで並べ替えようとしています。たとえば、「12-21-11 Thompson--CaseManagement.pdf」というラベルの付いたフォルダーにクライアント。これまでのところ私は得ました:

for /f "tokens=2* delims= " %%b in ('dir /b *.pdf') do (
    md %%b

moveそのため、%% bはクライアント名(例: "Thompson")であり、それぞれのフォルダーが作成されますが、 %%bのみを考慮するようにするにはどうすればよいかわかりません。「-」の後のタイトルはファイルごとに一貫していないため、のようなものmove "%%a %%b %%c %%d"が常に機能するとは限りません。これを行う方法はありますか?

または、簡単な場合は、ファイルを並べ替えるときに10番目の文字のみを考慮する方法はありますか?したがって、「12-21-11 Thompson-Case Management」は、「T」という名前のフォルダに並べ替えることができます。

4

2 に答える 2

0

単純な FOR ループを使用してファイルを一覧表示し、内側の FOR /F ループを使用してクライアント名を解析します。

for %%F in (*.pdf) do for /f "tokens=2" %%A in ("%%F") do (
  if not exist "%%A\" md "%%A"
  move "%%F" "%%A"
)
于 2013-02-23T15:06:14.470 に答える
0

未検証:

 for /f "tokens=2* delims= " %%b in ('dir /b *.pdf') do (
        md %%b > nul 2>&1
        for /f %%F in ('dir /b /a:-d *%%b*.pdf') do (
           move %%F %%b
        )

    )
于 2013-02-22T21:47:24.337 に答える