@echo off
set b=0
for /r "C:\" %%f in (*.png) do (
set name=%%~nf%
call :next
)
goto end
:next
ren "%name%.png" "picture%b%.png"
set /a b=b+1
goto :eof
:end
echo 画像ファイルは%b%枚でした
というファイルの中の画像ファイルをカウントし、カウントした数をつけてリネームするというバッチファイルを作ろうとしています
ですが、リネームしたあとのpicture数字.pngファイルをまた処理してしまって
ファイルの数が多くカウントされてしまいます
また、2度目実行した時などに同名のファイルが存在するというエラーが出るのですが
同名のファイルが有る時も無理やりリネームするということができるでしょうか?
>同名のファイルが有る時も無理やりリネームするということができるでしょうか?
どういうふうに リネームするんですか?
無理すると 上書きとなり 前のファイルは なくなりますよ。
それでいいのならば まず その名前で削除してから その名前にリネームすればいいでしょう。
あとは 別フォルダにするかですよね。
Windowsでは 同名のファイルがある場合(1)とかつけて 別ファイル名にしていますが。
コメント(1件)
それはよろしくないので,renしてよいフォルダを指定しましょう.
それから,2回以上実行すると以前のren後のファイル名がそこに存在するので,2回目以降はファイル名が重複します.
ファイル名称の確認後にrenするのが良いです.