batファイルを実行して、各サブフォルダーの写真の名前をサブフォルダー名に変更し、すべての写真を新しいフォルダーにコピーする必要があります。各サブフォルダには写真が1枚だけ含まれています。
サブフォルダがたくさんあるので、このタスクを実行するためのバッチファイルを作成したいのですが、最後のサブフォルダの写真しか正常にコピーできません。
サブフォルダは、「00000001」から始まる番号順に名前が付けられています。
写真の名前が同じに変更されたため、コピーできる写真は1枚だけであることがわかりました。
これが私のコードです:
md "D:\photo"
for /r %%d in (.) do (cd %%d
for /r %%* in (.) do (set CurrDirName=%%~n*
echo %CurrDirName%
ren "*.jpg" "%CurrDirName%.jpg"
copy *.jpg "D:\photo"))
コードを変更して、やりたいことがうまくいくようにアドバイスしてください。どうもありがとうございました。
詳細を編集
たとえば、cmd行では、プログラムはサブフォルダ "00000127"で実行されていますが、CurrDirName = 00000127を設定しますが、%CurrDirName%をエコーすると、最後のサブフォルダである00000128が表示され、すべてのサブフォルダは00000128を返しますが、CurrDirNameは返しません。