ファイルの名前に対応するフォルダー内のファイルをコピーするためのスクリプトに取り組んでおり、宛先フォルダーが存在することを確認し、それが確認されたらファイルをコピーする FOR ループを使用してその部分を解決しました。 . 例: 11-01111_ABC_DEF.pdf は /11/0111/ に入ります。長さは 1 ~ 2 文字異なる場合がありますが、形式は一貫しています。以下の基本的なスクリプトをコピーしました。
私の問題は、同じ名前のファイルを処理する必要がある場合があることです。ファイルの 1 つまたは複数のコピーが宛先フォルダーに既に存在する場合、ファイルの末尾に数値を連結するにはどうすればよいですか?
setlocal enableextensions enabledelayedexpansion
for %%x in (*.PDF *.TXT) do (
set "source="C:\files"
set "dest=R:\"
set "filename=%%x"
set "prefix=!filename:~0,2!"
set "folder=!filename:~3,5!"
if not exist !dest!\!prefix!\!folder! MOVE !filename! !source!\failed
if exist !source!\!filename! MOVE !filename! !dest!\!prefix!\!folder!
)