ルートディレクトリでPDFファイルを10秒ごとにチェックし、それらのファイルをまったく同じ名前の対応するサブフォルダーにコピーするバッチファイルがあります。
私が見逃しているのは、名前付きファイルのターゲットサブディレクトリをチェックするバッチファイルが必要であり、名前付きファイルが存在する場合は、コピー先の新しいファイルの名前を変更し、重複するファイル名がコピーされる!filename!001.pdf
ときに001
getをインクリメントする必要があることです。これが私が得たものです:
:loop
setlocal enabledelayedexpansion
cls
pushd c:\files\
for /f "tokens=*" %%1 in ('dir /a-d /b c:\files\*.pdf') do (
set filename=%%~n1&set dirname=!filename:~0,7!
dir c:\files /b *.pdf > location1list.tmp
for /f %%a in (location1list.tmp) do dir c:\files\%%a > location2list.tmp
if not exist c:\files\!dirname! (md c:\files\!dirname!)
move %%1 c:\files\!dirname!\>nul
)
timeout /t 10
goto:loop
ファイルの名前を変更する方法について何か提案はありますか?
つまり、フォルダ内Bob.pdf
に存在し、Bob
別のフォルダBob.pdf
が追加されている場合は、としてフォルダC:\files
にコピーする必要があります。C:\files\bob
Bob001.pdf